ဖြစ်နိုင်ခြေသီအိုရီနှင့်စာရင်းဇယားများတွင် Simulated ကျပန်းဖြစ်ရပ်များသည်သတ်သတ်မှတ်မှတ်ဖြန့်ဖြူးနှင့်ကိုက်ညီသောကျပန်းနံပါတ်များကိုမကြာခဏလိုအပ်သည်။ PHP မှပေးသော LCG_VALUE () function သည် PSEUTO-DIMPLATE-DIWNATE POINT နံပါတ်များကိုအညီအမျှကြားကာလအတွင်း၌ဖြန့်ဝေသည်။ ဤဆောင်းပါးသည်ရိုးရှင်းသောဖြစ်နိုင်ခြေပုံစံကိုဖန်တီးရန်နှင့်၎င်း၏အသုံးဝင်သောနည်းလမ်းများကိုဖန်တီးရန်ဖြန့်ဖြူးရေးလုပ်ဆောင်မှုနှင့်အတူပေါင်းစပ်ထားသော LCG_VALUUE () ကို အသုံးပြုနည်းကိုမိတ်ဆက်ပေးလိမ့်မည်။
LCG_VALUE () PSP တွင်တည်ဆောက်ထားသော Pseudo-Discover Provale မျိုးဆက်မျိုးဆက်လုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည် linearential generator ကိုအခြေခံပြီး [0, 1) ကြားကာလ၌အညီအမျှဖြန့်ဝေသည့် floating point နံပါတ်ကိုပြန်လည်ရောက်ရှိသည်။ ဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းဖြင့်သင်ကယူနီဖောင်းကျပန်းဖြစ်ရပ်များကိုပုံဖော်နိုင်ပြီးအသွင်ပြောင်းမှုများမှတစ်ဆင့်ပိုမိုရှုပ်ထွေးသောဖြန့်ဖြူးမှုကိုရရှိနိုင်ပါသည်။
<?php
$randNum = lcg_value();
echo $randNum; // ထုတ်လုပ်ခြင်း 0 ရောက်လာ 1 အကြား floating အမှတ်နံပါတ်များ
?>
ဖြစ်နိုင်ခြေမော်ဒယ်သည်ကျပန်း variable များ၏တဖြည်းဖြည်းဖြန့်ဖြူးရေး function ကိုသတ်မှတ်သည်။ ကျနော်တို့ပစ်မှတ်ဖြန့်ဖြူးနှင့်အတူ CDF ရှိပါက , ထို့နောက်တစ် ဦး ယူနီဖောင်းကျပန်း variable ကိုပေးထားသည် , တွက်ချက်မှုအားဖြင့် (I.E. , ပြောင်းပြန်လုပ်ဆောင်ချက်အသွင်ပြောင်းမှု), ပစ်မှတ်ဖြန့်ဖြူးနှင့်ကိုက်ညီသောကျပန်း variable များကိုသင်ရရှိနိုင်သည်။
ရိုးရိုးလေးပါ
Uniform ကျပန်းနံပါတ်များကိုထုတ်လုပ်ရန် lcg_value () ကို သုံးပါ
ပစ်မှတ်ဖြန့်ဖြူးအသုံးပြု။ CDF function ကို ပစ်မှတ်ဖြန့်ဖြူးမှု၏ကျပန်းအရေအတွက်သို့ကူးပြောင်းသည်
ကျွန်ုပ်တို့တွင်ရိုးရှင်းသော discrete ကျပန်း variable ကိုရှိသည်ဆိုပါစို့ ၏တန်ဖိုးသည် {A, B, C} နှင့်သက်ဆိုင်သောဖြစ်နိုင်ခြေမှာ {0.2, 0.5, 0.3} အသီးသီးဖြစ်သည်။ ဤကျပန်း variable ကိုတုပရန် LCG_VALUE () ကို မည်သို့အသုံးပြုရမည်နည်း။
စိတ်ကူးကတော့
ကွဲပြားခြားနားမှုဖြန့်ဖြူးခြင်း (CDF) ၏ cumulative distribution function ကိုတည်ဆောက်ရန် (CDF)
ယူနီဖောင်းကျပန်းနံပါတ် U = \ စာသား {lcg_value} ကိုထုတ်လုပ်ပါ။
အရ အရာကြားကာလ ဘယ် output ကိုမှဖြစ်ရပ်ဆုံးဖြတ်ရန်ဆုံးဖြတ်ရာတွင်ကျရောက်ပါတယ်
<?php
function sampleDiscrete() {
$u = lcg_value();
if ($u < 0.2) {
return 'A'; // 0 <= u < 0.2
} elseif ($u < 0.7) { // 0.2 <= u < 0.7 (0.2 + 0.5)
return 'B';
} else { // 0.7 <= u < 1
return 'C';
}
}
// စမ်းသပ်မှုကို run ပါ
$results = ['A' => 0, 'B' => 0, 'C' => 0];
for ($i = 0; $i < 10000; $i++) {
$sample = sampleDiscrete();
$results[$sample]++;
}
print_r($results);
?>
အပြေးပြီးနောက်စာရင်းအင်းဆိုင်ရာရလဒ်များသည်ဖြစ်နိုင်ခြေ {0.2, 0.5, 0.3} ခန့်မှန်းခြေကိုခန့်မှန်းလိမ့်မည်။
စဉ်ဆက်မပြတ်ဖြန့်ဖြူးရန်အတွက် CDF နည်းလမ်းကိုလည်းလည်းသက်ဆိုင်သည်။ ဥပမာအားဖြင့်, အဆခွဲဖြန့်ဖြူးသည် , ၎င်း၏ CDF သည်:
ပြောင်းပြန် CDF သည်:
LCG_VALUE () ကို သုံး. appoxentance ဖြန့်ဝေထားသောကျပန်းနံပါတ်များကိုထုတ်လုပ်ရန်ဥပမာ -
<?php
function sampleExponential($lambda) {
$u = lcg_value();
return -log(1 - $u) / $lambda;
}
// 测试ထုတ်လုပ်ခြင်း
for ($i = 0; $i < 5; $i++) {
echo sampleExponential(2) . "\n"; // lambda = 2
}
?>
LCG_VALUE () () သည် ဖြစ်နိုင်ချေရှိခြင်း၏အခြေခံဖြစ်သောတစ်ပုံစံတည်းဖြန့်ဝေထားသောကျပန်းနံပါတ်များကိုထုတ်ပေးသည်။
ရည်မှန်းချက်ဖြန့်ဖြူးခြင်း (CDF) ကိုပေါင်းစပ်ဖြန့်ဖြူးခြင်းသို့မဟုတ်၎င်း၏ပြောင်းရွှေ့မှုဆိုင်ရာလုပ်ဆောင်ချက်,
discrete ဖြန့်ဖြူးခြင်းကိုကြားကာလဖြင့်ပိုင်းခြားထားပြီးဆက်တိုက်ဖြန့်ဖြူးခြင်းကိုပြောင်းပြန် CDF အသွင်ပြောင်းမှတဆင့်အောင်မြင်သည်။
ဤနည်းလမ်းသည်ရိုးရှင်းလွယ်ကူပြီးလက်တွေ့ကျသော,
အသေးစိတ်အသုံးပြုမှုအတွက်တရားဝင် PHP စာရွက်စာတမ်းများကို https://gitbox.net/unet/enual/en/function.lcg-value.php ။