کاذبی تصادفی عدد مولّد

testwiki سے
Jump to navigation خانۂ تلاش میں جائیں

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

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

Pr(x(a,b))=ba,(a,b)(0,1)

غور کرو کہ اس طریقہ سے جنم پانے والا تصادفی متغیر یکساں توزیع احتمال رکھے گا۔

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

xn+1=axn+cmodm

جہاں دائم a ،c اور m، کو نہایت احتیاط سے چنا جاتا ہے اور modm سے مراد بمعامل ہے۔ کسی بھی مثبت صحیح عدد x0 سے شروع کر کے ہمیں فرضیتصادفی اعداد کا متوالیہ

x0,x1,x2,

تولید ہوتا ہے۔ غور کرو کہ یہ متوالیہ معیادی ہے اور اس کی میعاد زیادہ سے زیادہ m ہے، یعنی اتنے قدموں کے بعد یہ دہرائے گا۔ اس متوالیہ کے کسی بھی صحیح عدد xn سے (0,1) وقفہ کے درمیان تصادفی عدد

rn=xnm

بنتا ہے۔ رجعت نسبت کے دائم اعداد کا ایک اچھا انتخاب یہ ہے،

a=630360016,m=2311,c=0

اکثر برمجہ ماحول (مثلاً سائیلیب) میں پائے جانے والے مولّد اسی اصول (بمعامل رَجعت نسبت) پر بنائے جاتے ہیں۔ واضح رہے کہ یہ مولّد کرپٹوگرافی اطلاقیہ کے لیے موزوں نہیں ہوتے۔ حالیہ برسوں میں ایک نئے مولّد کا چرچا ہوا ہے جو مرسین (مفرد عدد) twister کے نام سے مشہور ہے اور جسے جاپانی محققین نے بنایا ہے۔[1]

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

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

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

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

 1+N×r

جہاں علامت x سے مراد ہے x سے کم سب سے بڑا صحیح عدد۔ مثلاً 3.2=3

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

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

  1. رکھو  vN اور D(i)=i,i=1,2,,N
  2. اپنے فرضی تصادفی عدد مولد سے معیاری وقفہ (0,1) میں عدد r حاصل کرنے کے بعد صحیح تصادفی عدد  n=1+v×r حاصل کرو۔
  3.  D(n) اور  D(v) کی اقدار کا باہمی تبادلہ کر دو۔
  4. اب  vv1 رکھو۔ اگر  v>1 تو واپس قدم 2 پر چلو، ورنہ رُک جاؤ اور تصادفی تبدل کامل (D(1),D(2),,D(N)) ہے۔

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

اگر تصادفی متغیر X ہو جو دو اقدار x0 اور x1 لیتا ہو۔ یعنی دو نکاتی توزیعِ احتمال ہو، قدر x0 احتمال p0 کے ساتھ اور دوسری قدر x1 احتمال  1p0 کے ساتھ۔ تو ہم اپنے فرضی تصادفی عدد مولد سے معیاری وقفہ (0,1) میں عدد r حاصل کرنے کے بعد، قدر x0 چنیں گے اگر  r<p0، ورنہ قدر x1۔ اس طریقہ کو عام کیا جا سکتا ہے کسی بھی متفرد توزیع احتمال کے لیے۔

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

فائل:Cdf pseudo rng.png

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

y=FY1(x)

مطلوبہ عدد ہے، جس کی توزیع احتمال  FY(y) ہو گی (یہاں  FY(.) دالہ کا مقلوب دالہ FY1(.) ہے۔)[2][3]

مزید دیکھیے

حوالہ جات

سانچہ:حوالہ جات

بیرونی روابط

سانچہ:ریاضی مدد سانچہ:انگریزی عنوان

  1. ACM Transactions on Modeling and Computer Simulations, 1998 "Mersenne Twister: A 623 dimensionally equidistributed uniform pseudorandom number generator"
  2. سانچہ:حوالہ ویب
  3. آن لائن کتاب, "Luc Devroye: Non-Uniform Random Variate Generation"