PDA

View Full Version : سوال: تولید عدد تصادفی بین دو مقدار



Keyhan Clever
سه شنبه 15 اردیبهشت 1388, 15:29 عصر
با سلام خدمت پروفسورین عزیز.
خوب میدونم برای تولید عدد تصادفی باید از تابع ()rand استفاده کنیم.
خوب حالا اگه بخواهیم بهش مقدار بدیم مثلا بین 60 تا 90 سه تا عدد تصادفی تولید کنیم چه کار باید بکنیم ؟

Nima_NF
سه شنبه 15 اردیبهشت 1388, 16:54 عصر
ابتدا عدد رندوم را به بازه 0 و 1 تبدیل می کنیم (با تقسیم صحیح بر RAND_MAX به علاوه یک، دقت کنید که RAND_MAX انتهای مقداری را که rand بدست می آورد را بر می گرداند )، سپس در اخلاف آن دو min و max تا عددی بین آن دو بدست آوریم و سپس به علاوه min بازه:



double max_N = 90,
min_N = 60;

int YourRandom = (double) rand() / (RAND_MAX + 1) * (max_N - min_N) + min_N;

Salar Ashgi
چهارشنبه 16 اردیبهشت 1388, 20:00 عصر
سلام ، همانطور كه دوستمون گفتن ولي يه كم ساده تر :

براي توليد اعداد تصادفي در [a,b] از كد زير استفاده مي كنيم :


a+rand()%(b-a+1)

دليل : باقيمانده بر b-a+1 بين 0 تا b-a قرار دارد ، حال اگر a واحد به آن افزوده شود ، بين a تا b خواهد بود .

موفق و پيروز باشيد !!!