PHP တွင်ကျပန်းနံပါတ်များ ကို ထုတ်လုပ်သော အခါ , ၎င်းတို့ကိုကျပန်းနံပါတ်များကိုထုတ်လုပ်ရန်အသုံးပြုနိုင်သော်လည်း၎င်းတို့သည်တိကျသောအသုံးပြုမှုဆိုင်ရာအခြေအနေများ, စွမ်းဆောင်ရည်, ကျပန်းနှင့်သယ်ဆောင်ရာတွင်၎င်းတို့၏အားသာချက်များနှင့်အားနည်းချက်များရှိသည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသေးစိတ် developer များက၎င်းတို့လိုအပ်ချက်များနှင့်အညီသင့်လျော်သောကျပန်းနံပါတ်မျိုးဆက်သစ်အစီအစဉ်များကိုရွေးချယ်ရန်ကူညီရန်အသေးစိတ်ဖော်ပြထားသည်။
lcg_value ()
၎င်းသည် linear congruent goldator (LCG, linearent generator generator) ကို အခြေခံ. PHP တွင် PHP တွင်အကောင်အထည်ဖော်သည့်ကျပန်းနံပါတ်မျိုးဆက်မျိုးဆက်သစ်မျိုးဆက်မျိုးဆက်ဆိုင်ရာလုပ်ဆောင်မှုဖြစ်သည်။ ၎င်းသည် 0 နှင့် 1 ကြားအကြား floating point အရေအတွက်ကိုပြန်လည်ရောက်ရှိစေသည်။
mt_rand ()
PHP Built-in Mersenne Twister ကျပန်းနံပါတ်မျိုးဆက် function ကို။ ၎င်းသည်ကိန်းဂဏန်းများကိုပုံမှန်စွမ်းဆောင်ရည်နှင့်ခိုင်မာသောကျပန်းရှိသည့် Mt_etrandmax () မှ 0 င်သည်။
လုပ်ဆောင်ချက် | အမျိုးအစားပြန်လာ | ပုံမှန်အကွာအဝေး | ဥပမာပြပါ |
---|---|---|---|
lcg_value () | မေျာ | 0.0 ≤ x ကို <1.0 | ဖြစ်ရပ်များအတွက်သင့်တော်သောအခြေအနေများအတွက် Decimal ကျပန်းနံပါတ်များလိုအပ်သည် |
mt_rand () | Integer (Int) | 0 to mt_getrandmax () | ကျပန်း integer မျိုးဆက်အတွက်သင့်လျော်သောစိတ်ကြိုက်အကွာအဝေး |
ယေဘုယျအားဖြင့်ပြောရလျှင် mt_rand () သည် algorithm optimization ကြောင့် lcg_value () ထက်ပိုမိုကောင်းမွန်သည်။ ကျပန်းနံပါတ်မျိုးထုတ်လုပ်မှုအမြောက်အများကိုထုတ်လုပ်သည့်နေရာတစ်ခုတွင် MT_rand () သည် အလုပ်ကိုပိုမိုမြန်ဆန်စေနိုင်သည်။
Mt_rand () algorithm သည် 19937-12 မှ 2 ^ 19 အထိကာလအထိ Mersenne Twister အပေါ်အခြေခံသည်။
LCG_VALUE () သည်တိုတောင်းသောကာလနှင့်နှေးကွေးသောမြန်နှုန်းနှင့်အတူ linear congruent algorithm အပေါ်အခြေခံသည်။
ကျိတ်ရပ်
Mersenne Twister algorithm တွင်ပိုမိုကောင်းမွန်သောကျပန်းနှင့်ဂိမ်းကစားခြင်း,
အဆိုပါ linear conguent မီးစက်သည်ကျပန်းအားနည်းခြင်းနှင့်တိုတောင်းသောကာလများနှင့်မညီမညာဖြစ်နေသောဖြန့်ဖြူးမှုပြ problems နာများရှိသည်။
လုံခြုံရေး cryptography လုံခြုံစိတ်ချရသောအခါသမယများအတွက်မသင့်တော်ပါ။
PHP 7 နှင့်အထက်ရှိ ကျပန်း လုပ်ဆောင်ချက်များကိုပိုမိုလုံခြုံစိတ်ချရသောလုပ်ဆောင်မှုများကိုအသုံးပြုရန်အကြံပြုသည် ။
<?php
// တစ် ဦး generate0နှင့်1အကြား floating အမှတ်နံပါတ်များ
$randomFloat = lcg_value();
echo "ကျပန်း floating အမှတ်နံပါတ်: " . $randomFloat;
?>
<?php
// တစ် ဦး generate0နှင့်100အကြားကိန်း
$randomInt = mt_rand(0, 100);
echo "ကျပန်းကိန်း: " . $randomInt;
?>
မျက်နှာမ | အကြံပြု functions များ | ဥပမာပြပါ |
---|---|---|
floating အမှတ်ကျပန်းနံပါတ်များလိုအပ်သည် | lcg_value () | ရိုးရှင်းသော floating point နံပါတ်ထုတ်လုပ်မှု, ထိုကဲ့သို့သောဖြစ်နိုင်ခြေတွက်ချက်မှုအဖြစ်ရှုခင်းများအတွက်သင့်လျော်သော |
မြင့်မားသောစွမ်းဆောင်ရည်ကိန်းကျပန်းနံပါတ်များကိုလိုအပ်ပါတယ် | mt_rand () | ဂိမ်းအများစု, Simulator နှင့်သာမန်ကျပန်းလိုအပ်ချက်များကိုပိုမိုနှစ်သက်သည် |
cryptography လုံခြုံကျပန်းနံပါတ်များလိုအပ်သည် | PHP 7+ Built-in လုံခြုံရေးလုပ်ဆောင်ချက်များကို | ကျပန်း () သို့မဟုတ် ကျပန်း () ကိုသုံးပါ () |
PHP ကျပန်းနံပါတ်လုပ်ဆောင်ချက်များအကြောင်းပိုမိုသိရှိလိုပါကတရားဝင်စာရွက်စာတမ်းများကို https://gitbox.net/menual/en/function.lcg-value.php နှင့် https://gitbox.net/enuation.php