سلام
دوستان من اعداد تصادفی در بازه a,b را تولید کرده ام حالا میخوام به بازه [1 0]تغییر بدم
یک فرمول ریاضی هست میشه راهنمایی کنید
سلام
دوستان من اعداد تصادفی در بازه a,b را تولید کرده ام حالا میخوام به بازه [1 0]تغییر بدم
یک فرمول ریاضی هست میشه راهنمایی کنید
منظورتون از تابع ریاضی چیه ؟ تو C++ کد زیر اعداد بین 0 و 1 تولید می کنه :
x=((double)rand() / (double) RAND_MAX)
تو C# هم تابع آماده داره که بازه بین 0 و 1 تولید می کنه
ممنون دوست عزیز از جواب شما
اما من چیز دقیقی میخوام که پارامترهای حد پایین و بالا ، معیین باشه
خودش هم تابع رندم را من خودم میسازم
فرض کنید اعداد تصادفی من بین 5 و 10 باشه
حالا با برگشت مقدار 5 => 0
10=>1
7=>0.5
و...
اگر درست منظورتون رو متوجه شده باشم ، شما می خواین برای تابع رندم تون که بین 0 و 1 هست حد تعیین کنید ، خب ابتدا رندم بین 0 و 1 رو بسازید ، سپس شرط بذارین که مثلا :
x=0;
if(x<=0.125)
j=1;
من هنوز منظورتون رو از فرمول ریاضی نفهمیدم
از این تبدیل استفاده کنید:
(y=(x-a)/(b-a
آخرین ویرایش به وسیله مسعود اقدسی فام : یک شنبه 17 اردیبهشت 1391 در 19:15 عصر
ممنون مسعود جان
پس شدیاشاسین بیزیم اغا مسعوده که افتخاریمیزده
y=(rand()-a)/(b-a)
فقط چون عددم خیلی بزرگ میشه یک کلاس ساختم که با ان بتونم عدد با ممیز شناور را ذخیره کنم
در حالت کلی برای تبدیل خطی از بازه a تا b به بازه c تا d از این رابطه استفاده میشه:
y = ( ( x - a ) / ( b - a ) ) * ( d - c ) + c
ممنون دوست عزیز از جواب شما
خوب اگه بازه را از صفر شروع میکردم دیگه چرا تا 10،
یک دفعه از بازه 0 تا 1 در نظر میگرفتم دیگه
جواب درست من گرفتم که اقای مسعود گل گفتند