Transcript فصل سوم
Prepared By R.Ebrahimzade
مقدمه
توليد اعداد تصادفي:
-1پيش از ظهور كامپيوترهاي رقمي
1-1ريختن تاس
2-1استفاده از ابزار هاي فيزيكي مولد
-2پس از ظهور كامپيوتر هاي رقمي
1-2مولدهاي همنهشتي خطي
2-2مولدهاي خطي تكرارپذير در پايه عددي دو
خواص اعداد تصادفي
• هر دنباله اي از اعداد تصادفي بايد دو خاصيت آماري مهم داشته باشد .
• -1يكنواختي
• -2استقالل
• يكنواختي :اگر فاصله( )0،1به nرده يا زير فاصله مساوي تقسيم شود،
انتظار مي رود كه از Nمشاهده N/nآنها در هر رده قرار گيرد.
• استقالل :احتمال حصول يك مشاهده در يك رده خاص مستقل از محل
قرار گرفتن ساير مشاهده ها است.
خطاهاي توليد اعداد تصادفي
• اعداد تصادفي ممكن است توزيع احتمال يكنواخت نداشته باشند
• ميانگين اعداد توليد شده ممكن است بيش از حد بزرگ و يا بيش از
حد متعارف كوچك باشد.
• واريانس اعداد تصادفي توليد شده ممكن است تفاوت قابل توجهي از
مقدار متعارف داشته باشد.
• ممكن است دنباله اعداد توليد شده تغييرات تناوبي از خود نشان دهند
ازجمله:
.1وجود همبستگي بين اعداد
.2وجود رابطه مقداري بين اعداد مجاور به اين ترتيب كه اعداد مجاور
روندي صعودي يا نزو لي از خود نشان دهند.
.3وجود چند عدد بزرگتر از ميانگين و به دنبال آن چند عدد كوچكتر
ازميانگين.
نكاتي كه بايد در توليد اعداد تصادفي مورد توجه
قرار گيرد
•
•
•
•
•
•
•
الگوريتم بايد سريع باشد.
الگوريتم نبايد به مقدار زيادي حافظه نياز داشته باشد.
طول دنباله اعداد توليد شده بايد به اندازه كافي بلند باشد.
طول دنباله :تعداد اعدادي است كه بدون تكرار دنباله در آن قرار مي
گيرد.
اگر عدد تصادفي معيني به طور مكرر توليد گردد ،گويند الگوريتم از هم
پاشيده است.
اعداد تصادفي توليد شده توسط يك الگوريتم بايد در صورت نياز تكرار
پذير باشند.
از همه مهمتر بايد اعداد توليد شده تا حدود زيادي از خواص آماري
روشهاي توليد اعداد تصادفي
-1روش ميان مربعي
-2روش ميان ضربي
-3روش مضرب ثابت
-4روش همنهشتي جمعي
-5روش همنهشتي ضربي
-1روش ميان مربعي
در اواسط دهه 1940توسط وان نومن و متراپليس ابداع شده.
روش كار:
هسته را مربع نموده و سپس ارقام مياني آن را تعيين نموده و پس از
نوشتن صفر-مميز در سمت چپ ارقام مياني ،اولين عدد تصادفي
توليد شده و براي توليد ساير اعداد بايد از ارقام مياني مرحله قبل
به عنوان هسته استفاده نمود.
-1روش ميان مربعي(مثال)
• فرض كنيد به يك دنباله از اعداد تصادفي 4رقمي نياز داريم.
• هسته را با X0نمادگذاري كرده و مقدار 5497را براي آن در نظر مي گيريم.
X0=5497
X02=(5497)2=30217009 X1=2170 R1=0.2170
X12=(2170)2=04708900 X2=7089 R2=0.7089
X22=(7089)2=50253921 X3=2539 R3=0.2539
…
-2روش ميان ضربي
• اين روش مانند روش ميان مربعي است با اين تفاوت كه با انتخاب
دو هسته X0و ’ X0كه تعداد ارقامشان مساوي است شروع به كار
مي كند .حاصلضرب اين دو هسته را محاسبه نموده و قسمت
مياني عدد حاصله را به عنوان عدد تصادفي انتخاب نموده ( )X1و
مي توان با قرار دادن مميز در سمت راست آن عدد تصادفي را
حاصل نمود .براي محاسبه عدد تصادفي بعدي محاسبات فوق را با
X0و X1تكرار مي كنيم و اين روال ادامه مي يابد.
-2روش ميان ضربي (مثال)
• از دو هسته X0=7229و X0’=2938استفاده و بر اساس روش
ميان ضربي اعداد تصادفي 4رقمي توليد كنيد
U1=X0’X0=(2938)(7229)=21238802X1=2388
R1=0.2388
U2=X0X1=(7229)(2388)=17262852X2=2628
R2=0.2628
…
اين روش شباهت بسياري را روش ميان مربعي دارد اما طول دنباله براي اين روش بلندتر و يكنواخت تر است .ولي اين روش
عيب عمده از هم پاشيدن را دارد.
-3روش مضرب ثابت
• اين روش شبيه روش ميان ضربي است فقط با اين تفاوت كه يكي
از اعداد را ثابت درنظر مي گيريم و آنرا معموال kمي ناميم .ساير
موارد كامال شبيه روش ميان ضربي است.
** اين روش مزايا و معايب روش ميان ضربي را دارد و نيز اينكه
عملكرد مناسب اين روش تا حد زيادي به انتخاب مقدار kبستگي
دارد.
-3روش مضرب ثابت (مثال)
• با استفاده از دو هسته K=3987و X0=7223و روش مضرب
ثابت دنباله اي از اعداد تصادفي چهار رقمي توليد كنيد.
V1=KX0=(3987)(7223)=28798101X1=7981R1=0.7981
V2=KX1=(3987)(7981)=31820247X2=8202R2=0.8202
…
-4روش همنهشتي جمعي
اين روش با روشهاي گفته شده پيش از اين كامال متفاوت است .در اين
روش دنباله nتايي مانند X1,X2,X3…Xnرا دريافت و بقيه دنباله
يعني … Xn+1,Xn+2,را توليد مي كند .اساس توليد مقدار در اين
روش استفاده از رابطه
…i=n+1,n+2,
XiΞ(Xi-1+Xi-n) mod m
مثال
فرض كنيد nمساوي 5و دنباله اعداد صحيح تصادفي
X1,X2,X3,X4,X5به ترتيب مساوي 92 ،89 ،34 ،57و 16باشد.
براي mمقدار 100را درنظر بگيريد .از روش همنهشتي جمعي
استفاده كنيد و اين دنباله را ادامه دهيد.
…i=n+1,n+2,
mod 100 = 73
mod 100 = 7
mod 100 = 96
mod 100 = 88
mod 100 = 4
mod 100 = 77
mod 100 = 73
mod 100 = 107
mod 100 = 96
mod 100 = 188
mod 100 = 104
mod 100 = 77
XiΞ(Xi-1+Xi-n) mod m
)X6 = (X5+X1
)X7 = (X6+X2
)X8 = (X7+X3
)X9 = (X8+X4
)X10= (X9+X5
)X11= (X10+X6
….
مولد همنهشتي خطي
اگر دنباله اعداد صحيح } {Xiطبق رابطه تكرار پذير زير تعريف شود،
آنرا مولد همنهشتي خطي نامند.
در اين رابطه ضريب ، aثابت cو پيمانه mهمه اعداد صحيح
هستند.
XiΞ(aXi-1+c) mod m
…i=1,2,
بيشترين دنباله تكرار در اين همنهشتي mاست.
مثال
با استفاده ازمقادير X0=27, a=17, C=43و m=100و بر
اساس روش همنهشتي خطي دنباله اي از اعداد تصادفي توليد كنيد.
X0=27
X1=[17(27)+43] mod 100 = 502 mod 100 =2 R1=0.02
X2=[17(2) +43] mod 100 =77 mod 100 =77 R1=0.77
X3=[17(77)+43] mod 100 =1352 mod 100 =52 R1=0.52
…
-5روش همنهشتي ضربي
در روش همنهشتي خطي اگر c=0باشد مولد مزبور را همنهشتي ضربي
گويند.
خطي :
ضربي:
…i=1,2,
…i=1,2,
XiΞ(aXi-1+c) mod m
XiΞ(aXi-1) mod m