PHP ပရိုဂရမ်တွင် Rand () နှင့် GetrandMax () functions များသည်ကျပန်းနံပါတ်များကိုထုတ်လုပ်ရန်အသုံးပြုသောဘုံကိရိယာများဖြစ်သည်။ သို့သော် developer များအများအပြားအတွက်တော့ GetrandMax () နှင့် Rand () တို့ကအဘယ်ကြောင့်အများဆုံးတန်ဖိုးများကိုအဘယ်ကြောင့်မတသမတ်တည်းပြန်လာကြသနည်း။
ဤပြ problem နာကိုပိုမိုနားလည်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုနှင့်သူတို့၏ဆက်ဆံရေးကိုမည်သို့အသေးစိတ်လေ့လာရန်လိုအပ်သည်။
Rand () သည် PSP မှကျပန်းနံပါတ်များကိုထုတ်လုပ်ရန်အသုံးပြုသော PHP ရှိ function တစ်ခုဖြစ်သည်။ 0 င်နှင့် GetrandMax အ ကြားကိန်းဂဏန်းတစ်ခုပြန်ပို့သည်။ ပုံမှန်အားဖြင့် Rand () မှပြန်လာသောကျပန်းနံပါတ်များသည် 0 င်မှ GetrandMax () မှဖြစ်သော်လည်းအောက်ပါအတိုင်းဖော်ပြထားသည့်အတိုင်းဤအကွာအဝေးကိုပြောင်းလဲနိုင်သည်။
<span><span><span class="hljs-variable">$random_number</span></span><span> = </span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">100</span></span><span>); </span><span><span class="hljs-comment">// ဖြစ်ပါှးစေ 1 ရောက်လာ 100 အကြားကျပန်းနံပါတ်</span></span><span>
</span></span>
GetrandMax () function ကို rand () function ကိုထုတ်လုပ်နိုင်သည့်အများဆုံးကိန်းတန်ဖိုးကိုပြန်ပို့ရန်အသုံးပြုသည်။ ရိုးရိုးရှင်းရှင်းပြောရလျှင်၎င်းသည် Rand () Return Value ၏အထက်ကန့်သတ်ချက်ကိုပြောပြသည်။ ဤတန်ဖိုး၏အရွယ်အစားကိုမသတ်မှတ်ထားပါ,
<span><span><span class="hljs-variable">$max_rand_value</span></span><span> = </span><span><span class="hljs-title function_ invoke__">getrandmax</span></span><span>(); </span><span><span class="hljs-comment">// ပြန်လာ rand() function ကို၏အများဆုံးတန်ဖိုး</span></span><span>
</span></span>
ပထမ ဦး စွာ GetrandMax () မှအများဆုံးရရှိသည့်အများဆုံးတန်ဖိုးသည်ပလက်ဖောင်းနှင့် PHP ၏ကျပန်းနံပါတ်မျိုးဆက်ဆိုင်ရာအကောင်အထည်ဖော်မှုနှင့်သက်ဆိုင်ကြောင်းရှင်းလင်းသင့်သည်။ Rand () function သည်ဤအမြင့်ဆုံးက န့ ်သတ်ချက်အပေါ် မူတည်. ကျပန်းနံပါတ်တစ်ခုကိုထုတ်ပေးသည် ။
သို့သော်လက်တွေ့တွင် Rand () မှရရှိသောအမြင့်ဆုံးတန်ဖိုးသည် GetrandMax ၏အထက်ပိုင်း () ပလက်ဖောင်းအချို့သို့မဟုတ်အချို့သော PHP configururations များအပေါ်တွင်အကန့်အသတ်ဖြင့်မရောက်ရှိနိုင်ပါ။
ကွဲပြားခြားနားသောပလက်ဖောင်းများအကြားကွဲပြားခြားနားသောအကောင်အထည်ဖော်မှုကွဲပြားခြားနားမှု <br> <br> Rand () နှင့် GetrandMax () ကိုအကောင်အထည်ဖော်ခြင်းသည်လည်ပတ်မှုစနစ်များသို့မဟုတ်ဟာ့ဒ်ဝဲဗိသုကာများအကြားကွဲပြားနိုင်သည်။ ဥပမာအားဖြင့်အချို့သောပလက်ဖောင်းများသည်ကွဲပြားသော Pseudo-downlow commonator များ (PRGS) ကို အသုံးပြု. ဤမီးစက်များ၏အများဆုံးတန်ဖိုးများသည်တသမတ်တည်းမဟုတ်ပါ။ ထို့ကြောင့် GetRandMax () သည် သီအိုရီအများဆုံးတန်ဖိုးကိုပြန်လည်ရရှိခဲ့သော်လည်းအမှန်တကယ်ထုတ်လုပ်သောကျပန်းနံပါတ်များ၏အကွာအဝေးအတွင်းအကောင်အထည်ဖော်မှုအမျိုးမျိုးကြောင့်ဤတန်ဖိုးကိုမရောက်ရှိနိုင်ပါ။
Php ပြည်တွင်းအကောင်အထည်ဖော်မှု
PHP သည် Rand () function ကိုမတူညီသောဗားရှင်းများဖြင့်အကောင်အထည်ဖော်မှုကိုပြုပြင်ပြောင်းလဲမှုများပြုလုပ်နိုင်သည်။ PHP ၏အချို့သောဗားရှင်းများတွင် Rand () သည် ကျပန်း နံပါတ်များကိုထုတ်လုပ်ရန်ကွဲပြားခြားနားသော algorithms ကိုသုံးနိုင်သည် ။ ၎င်းသည်အများအားဖြင့် algorithm ၏ဒီဇိုင်းနှင့်အကောင်းမြင်နှင့်ဆက်စပ်သောဖြစ်ပါတယ်။
အသုံးပြုသောကျပန်းနံပါတ် algorithm
PHP မှအသုံးပြုသောကျပန်းနံပါတ်ထုတ်လုပ်မှု algorithm သည်ပုံမှန်အားဖြင့်အသုံးပြုသောအမြင့်ဆုံးတန်ဖိုးကိုကန့်သတ်ထားနိုင်သည်။ ဥပမာအားဖြင့်, အကယ်. သင်သည် linear congruent generator (LCG) algorithm ကိုသုံးနေပါက၎င်း၏ကာလနှင့်ထုတ်လုပ်သောကျပန်းနံပါတ်များ သည် GetrandMax ၏ဖြစ်နိုင်ချေရှိသောတန်ဖိုးများအားလုံးကိုမဖုံးကွယ်နိုင်ပါ။ Mersenne Twister ကဲ့သို့သောပိုမိုအဆင့်မြင့်သောကျပန်းနံပါတ်များကိုများသောအားဖြင့်ပိုမိုကြီးမားသောအကွာအဝေးနှင့်အရည်အသွေးမြင့်သောကျပန်းအရေအတွက်ကိုပေးသည်။
Rand () မှပြန်လာသောအများဆုံးတန်ဖိုးသည် GetrandMax () နှင့်ကိုက်ညီမှုရှိကြောင်းသေချာစေလိုပါကအောက်ပါနည်းလမ်းများကိုသုံးနိုင်သည်။
Rand အစား Mt_rand () ကို သုံးပါ။
Mt_rand () Mersenne Twister algorithm ကိုအသုံးပြုသည်။ ၎င်းသည်များသောအားဖြင့်ကျပန်းနံပါတ်များကိုထုတ်လုပ်သည် ။
<span><span><span class="hljs-variable">$random_number</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mt_rand</span></span><span>(); </span><span><span class="hljs-comment">// အသုံးပြု mt_rand() ကျပန်းနံပါတ်များကိုရယူပါ</span></span><span>
</span></span>
လက်စွဲကန့်သတ်အကွာအဝေး <br> <br> အကယ်. သင် Rand () ကို အသုံးပြုရန်လိုအပ်ပါက၎င်းသည်သူ၏တန်ဖိုးသည် GetrandMax () ထက်မကျော်လွန်စေရန်သေချာစေလိုပါကကျပန်းနံပါတ်ကိုကိုယ်တိုင်လွှဲပြောင်းရယူနိုင်သည်။ သင် () နှင့် max ()) ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-variable">$random_number</span></span><span> = </span><span><span class="hljs-title function_ invoke__">min</span></span><span>(</span><span><span class="hljs-title function_ invoke__">rand</span></span><span>(), </span><span><span class="hljs-title function_ invoke__">getrandmax</span></span><span>()); </span><span><span class="hljs-comment">// အများဆုံးတန်ဖိုးထက်မကျော်လွန်သေချာပါစေ</span></span><span>
</span></span>
GetrandMax () နှင့် Rand) မှပြန်လာသောအများဆုံးတန်ဖိုးများသည် PHP အကောင်အထည်ဖော်မှု, ပလက်ဖောင်းကွဲပြားခြားနားမှုများနှင့်ကျပန်းကွဲပြားမှုများနှင့်ကျပန်းကွဲပြားခြားနားမှုများနှင့်ကျပန်းကွဲပြားမှုများနှင့်ကျပန်းကွဲပြားမှုများနှင့်ကျပန်းကွဲပြားမှုများနှင့်ကျပန်းကွဲပြားမှုများနှင့်ကျပန်းကွဲပြားမှုများနှင့်ကျပန်းကွဲပြားမှုများကဲ့သို့သောအချက်များကြောင့်ကွဲပြားနိုင်သည်။ များသောအားဖြင့်အထက်တွင်တူညီသောအကန့်အသတ်ရှိသော်လည်းအထူးသဖြင့်ကွဲပြားခြားနားသော operating systems သို့မဟုတ်ဟာ့ဒ်ဝဲဗိသုကာများအောက်တွင်အမှန်တကယ်အသုံးပြုမှုတွင်ကွဲပြားခြားနားမှုများရှိနိုင်သည်။
အကယ်. သင်သည်အရည်အသွေးမြင့်မားသောကျပန်းနံပါတ်မီးစက် () MT_rand () သည် MT_rand () သည် Mtenne Twister algorithm အပေါ်အခြေခံပြီးပိုမိုကောင်းမွန်သောရွေးချယ်မှုတစ်ခုဖြစ်သည်။