PDA

View Full Version : مشکل با انتخاب تصادفی



هم دانشگاهی
سه شنبه 10 خرداد 1390, 20:00 عصر
سلام دوستان

من می خوام عددی تصادفی بین a و b انتخاب کنم مثلا 1 و 2 ولی هر بار همین دو عدد انتخب میشن !

نمیدونم چرا ؟

double find_x0(int a,int b)
{
double x0;
srand(time(0));
while(1)
{
x0=a+rand()%(b-a+1);
cout<<x0;
if(ob2.df(x0) != 0)
break;
}
return x0;
}

در واقع می خواهم x0 بین a و b باشه تا بعد با تابع df مقدارش رو چک کنم اما بین a و b انتخاب نمیشه !!!

ممنون میشم کمکم کنین !

Arcsinos
سه شنبه 10 خرداد 1390, 21:51 عصر
سلام

تابع rand یه عدد صحیح بر میگردونه . میتونی مثلا یه عدد از بین 1 تا 100 به صورت تصادفی انتخاب کنی بعد بیای b-a رو تقسیم بر این عدد کنی اگه مثلا b-a یک بود و عدد تصادفی 40 بود جواب میشه 40/1 که میشه 0.025 .

موفق باشی

هم دانشگاهی
چهارشنبه 11 خرداد 1390, 04:53 صبح
خب حالا تابعی نیست که از همون اول مقدار double رو برگردونه ؟!

Arcsinos
چهارشنبه 11 خرداد 1390, 05:32 صبح
بیا برادر اینم یه تابع که دوبل و سوبل میده بیرون :


double fRand(double fMin, double fMax)
{
double f = (double)rand() / RAND_MAX;
return fMin + f * (fMax - fMin);
}

مرتضی تقدمی
چهارشنبه 11 خرداد 1390, 12:41 عصر
ابتدای تابع randomize() رو اضافه کن. در این صورت اعداد داده شده تکراری نخواهند بود. اگه اشتباه نکنم مشکل شما همین باشه.