PDA

نسخه کامل مشاهده نسخه کامل : توليداعداد تصادفي در محدوده خاص ؟



Mehran NZ
19-11-2007, 20:43
دوستان من مي خوام اعداد تصادفي رو در محدوده خاص مثلا 22 تا 66 رو بدست بيارم كد درستش و اين پايين دارم ولي خودم چيزي ازش سر در نياوردم استادمون گفت بصورت فورمول بايد حفظش كنيم خيلي دوست دارم بفهمم چطوري اينكار انجام ميشه توي msdn هم كه نگاه كردم چند تا مثال رو همين جوري حل كرده بود.
اون جايي رو كه مشكل دارم رو قرمز كردم


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

m3hrz4d
19-11-2007, 21:56
rand یک عدد تصادفی بین 0 تا RAND_MAX (که توی کامپایلر من 32767 هست) تولید میکنه.وقتی باقیمانده ی عدد بدست اومده رو بر n حساب کنیم نتیجه میشه یک عدد بین 0 تا n-1(چون باقیمانده همیشه از مقسوم الیه کوچیکتره).حالا اگه شما یک عدد بین min و max بخوای , اگه باقیمانده ی نتیجه ی rand رو بر max-min+1 تقسیم کنی طبق چیزی که گفتم یک عدد بین 0 تا max-min+1-1 یعنی یک عدد بین 0 تا max-min بدست میاد.با جمع کردن این مقدار با min یک عدد بین min تا max-min+min یعنی یک عدد بین min و max حاصل میشه.
از اون تقسیم بر صد هم من سر در نیاوردم اگه نگذاری هم مشکلی پیش نمیاد میتونی از استادتون سوال کنی که چرا گذاشته.
توی درس آمار سال دوم دبیرستان در مورد بدست آوردن عدد تصادفی توی range خاص نوشته بود :D

Mehran NZ
19-11-2007, 23:41
سلام بر مهرزاد جان حلال مشكلات
جالب بود و حل شد اون تقسيم بر 100 رو خود كتاب نوشته كه براي برداشتن دو تا صفر اخري بكار ميره كلا چيز بي خوديه