| اصطلاح | term |
| --- | --- |
| کاذبی  مولّد  تولید | pseudo  generator generate |

شمارندہ پر تصادفی عدد تولید کرنے کے لیے ایسے طریقے استعمال ہوتے ہیں، جو تصادفی نہیں ہوتے، مگر اعداد کا ایسا متوالیہ تولید کرتے ہیں، جس پر تصادفی ہونے کا گمان ہوتا ہے اور دراصل یہ تصادف پن کے تمام "اختبار" پر پورا اترتے ہیں۔ ایسے مولد کو *فرضی تصادفی عدد مولّد* کہا جاتا ہے۔

تعریف: ریاضی میں تصادفی عدد مولّد ایسے طریقہ کو کہا جاتا ہے جو صفر اور ایک کے درمیانی وقفہ *(0،1)* میں عدد *x* تولید کرے، اس خوبی کے ساتھ کہ عدد *x* کا کسی ذیلی وقفہ *(a,b)* میں واقع ہونے کا احتمال اس ذیلی وقفہ کی لمبائی *b-a* کے برابر ہو، یعنی

{\displaystyle \Pr \left(x\in (a,b)\right)=b-a\,,\,\,\,\,\,\,\,(a,b)\subseteq (0,1)}
غور کرو کہ اس طریقہ سے جنم پانے والا تصادفی متغیر یکساں توزیع احتمال رکھے گا۔

*فرضی تصادفی عدد مولد*، عام طور پر ایک (بمعامل) رَجعت نسبت ہوتا ہے۔ مثال کے طور پر اس کے لیے ایک مشہور رَجعت نسبت یہ ہے:

{\displaystyle x\_{n+1}=ax\_{n}+c\mod m}
جہاں دائم *a* ،*c* اور *m*، کو نہایت احتیاط سے چنا جاتا ہے اور {\displaystyle \mod m} سے مراد بمعامل ہے۔ کسی بھی مثبت صحیح عدد {\displaystyle x\_{0}} سے شروع کر کے ہمیں فرضیتصادفی اعداد کا متوالیہ

{\displaystyle x\_{0},x\_{1},x\_{2},\cdots }
تولید ہوتا ہے۔ غور کرو کہ یہ متوالیہ معیادی ہے اور اس کی معیاد زیادہ سے زیادہ *m* ہے، یعنی اتنے قدموں کے بعد یہ دہرائے گا۔ اس متوالیہ کے کسی بھی صحیح عدد {\displaystyle x\_{n}} سے (0,1) وقفہ کے درمیان تصادفی عدد

{\displaystyle r\_{n}={\frac {x\_{n}}{m}}}
بنتا ہے۔ رجعت نسبت کے دائم اعداد کا ایک اچھا انتخاب یہ ہے، 

{\displaystyle a=630360016,\,m=2^{31}-1,\,c=0}
اکثر برمجہ ماحول (مثلاً سائیلیب) میں پائے جانے والے مولّد اسی اصول (بمعامل رَجعت نسبت) پر بنائے جاتے ہیں۔ واضح رہے کہ یہ مولّد کرپٹوگرافی اطلاقیہ کے لیے موزوں نہیں ہوتے۔ حالیہ برسوں میں ایک نئے مولّد کا چرچا ہوا ہے جو مرسین (مفرد عدد) twister کے نام سے مشہور ہے اور جسے جاپانی محققین نے بنایا ہے۔

### کسی وقفہ میں تصادفی عدد کی تولید

اگر 10 اور 15 کے درمیان تصادفی عدد تولید کرنا ہو (یکساں توزیع احتمال کے ساتھ)، تو ہم اپنے *فرضی تصادفی عدد مولد* سے معیاری وقفہ (0,1) میں عدد *r* حاصل کرنے کے بعد، مطلوبہ وقفہ میں تصادفی عدد یوں حاصل کریں گے:
{\displaystyle \ 10+(15-10)\times r}

### تصادفی صحیح عدد کی تولید

اگر 1 اور *N* کے درمیان تصادفی صحیح عدد تولید کرنا ہو (یکساں توزیع احتمال کے ساتھ)، تو ہم اپنے *فرضی تصادفی عدد مولد* سے معیاری وقفہ (0,1) میں عدد *r* حاصل کرنے کے بعد، مطلوبہ صحیح تصادفی عدد یوں حاصل کریں گے:

{\displaystyle \ 1+\lfloor N\times r\rfloor }
جہاں علامت {\displaystyle \lfloor x\rfloor } سے مراد ہے *x* سے کم سب سے بڑا صحیح عدد۔ مثلاً {\displaystyle \lfloor 3.2\rfloor =3}

### تصادفی تَبَدُّلِ کامل

اگر صحیح اعداد کے مجموعہ {\displaystyle 1,2,3,\cdots ,N} کا تصادفی تَبَدُّلِ کامل تولید کرنا ہو تو یہ طریقہ ہے:

1. رکھو {\displaystyle \ v\leftarrow N} اور {\displaystyle D(i)=i,\,\,\,\,i=1,2,\cdots ,N}
2. اپنے *فرضی تصادفی عدد مولد* سے معیاری وقفہ (0,1) میں عدد *r* حاصل کرنے کے بعد صحیح تصادفی عدد {\displaystyle \ n=1+\lfloor v\times r\rfloor } حاصل کرو۔
3. {\displaystyle \ D(n)} اور {\displaystyle \ D(v)} کی اقدار کا باہمی تبادلہ کر دو۔
4. اب {\displaystyle \ v\leftarrow v-1} رکھو۔ اگر {\displaystyle \ v>1} تو واپس قدم 2 پر چلو، ورنہ رُک جاؤ اور تصادفی تبدل کامل {\displaystyle \left(D(1),D(2),\cdots ,D(N)\right)} ہے۔

### تصادفی عدد بمطابق متفرد توزیع احتمال

اگر تصادفی متغیر *X* ہو جو دو اقدار {\displaystyle x\_{0}} اور {\displaystyle x\_{1}} لیتا ہو۔ یعنی دو نکاتی توزیعِ احتمال ہو، قدر {\displaystyle x\_{0}} احتمال {\displaystyle p\_{0}} کے ساتھ اور دوسری قدر {\displaystyle x\_{1}} احتمال {\displaystyle \ 1-p\_{0}} کے ساتھ۔ تو ہم اپنے *فرضی تصادفی عدد مولد* سے معیاری وقفہ (0,1) میں عدد *r* حاصل کرنے کے بعد، قدر {\displaystyle x\_{0}} چنیں گے اگر {\displaystyle \ r<p\_{0}}، ورنہ قدر {\displaystyle x\_{1}}۔ اس طریقہ کو عام کیا جا سکتا ہے کسی بھی متفرد توزیع احتمال کے لیے۔

### تصادفی عدد بمطابق متواصل توزیع احتمال

اگر تصادفی متغیر *Y* بمطابق متواصل توزیعِ احتمال {\displaystyle \ F\_{Y}(y)}، تولید کرنا ہو تو یہ طریقہ ہے:
اپنے *فرضی تصادفی عدد مولد* سے معیاری وقفہ (0,1) میں عدد *x* حاصل کرو اور 

{\displaystyle y=F\_{Y}^{-1}(x)}
مطلوبہ عدد ہے، جس کی توزیع احتمال {\displaystyle \ F\_{Y}(y)} ہو گی (یہاں {\displaystyle \ F\_{Y}(.)} دالہ کا مقلوب دالہ {\displaystyle F\_{Y}^{-1}(.)} ہے۔)

مزید دیکھیے
-----------

* مونٹے کارلو تشبیہ
* سائیلیب help rand

حوالہ جات
---------

1. ↑  
ACM Transactions on Modeling and Computer Simulations, 1998 "Mersenne Twister: A 623 dimensionally equidistributed uniform pseudorandom number generator"
2. ↑  "Numerical Recipes دیکھو تفصیل"۔ 04 مارچ 2012 میں اصل سے آرکائیو شدہ۔ اخذ شدہ بتاریخ 15 جولا‎ئی 2007  الوسيط `|url-status=` تم تجاهله (معاونت)
3. ↑  
آن لائن کتاب, "Luc Devroye: Non-Uniform Random Variate Generation"

بیرونی روابط
------------

* Numerical Recipesآرکائیو شدہ (Date missing) بذریعہ nrbook.com (Error: unknown archive URL)

`E=mc2`     اردو ویکیپیڈیا پر ریاضی مساوات کو بائیں سے دائیں LTR پڑھیٔے     ریاضی علامات 



|  |
| --- |
| Pseudorandom number generator |