လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> LCG_VALUE () ဖြန့်ဖြူးခြင်းလုပ်ဆောင်ချက်များနှင့်ပေါင်းစပ်ပြီးရိုးရှင်းသောဖြစ်နိုင်ခြေပုံစံကိုဖန်တီးနည်း။ လက်တွေ့ကျတဲ့ဥပမာရှင်းလင်းချက်

LCG_VALUE () ဖြန့်ဖြူးခြင်းလုပ်ဆောင်ချက်များနှင့်ပေါင်းစပ်ပြီးရိုးရှင်းသောဖြစ်နိုင်ခြေပုံစံကိုဖန်တီးနည်း။ လက်တွေ့ကျတဲ့ဥပမာရှင်းလင်းချက်

gitbox 2025-06-17

ဖြစ်နိုင်ခြေသီအိုရီနှင့်စာရင်းဇယားများတွင် Simulated ကျပန်းဖြစ်ရပ်များသည်သတ်သတ်မှတ်မှတ်ဖြန့်ဖြူးနှင့်ကိုက်ညီသောကျပန်းနံပါတ်များကိုမကြာခဏလိုအပ်သည်။ PHP မှပေးသော LCG_VALUE () function သည် PSEUTO-DIMPLATE-DIWNATE POINT နံပါတ်များကိုအညီအမျှကြားကာလအတွင်း၌ဖြန့်ဝေသည်။ ဤဆောင်းပါးသည်ရိုးရှင်းသောဖြစ်နိုင်ခြေပုံစံကိုဖန်တီးရန်နှင့်၎င်း၏အသုံးဝင်သောနည်းလမ်းများကိုဖန်တီးရန်ဖြန့်ဖြူးရေးလုပ်ဆောင်မှုနှင့်အတူပေါင်းစပ်ထားသော LCG_VALUUE () ကို အသုံးပြုနည်းကိုမိတ်ဆက်ပေးလိမ့်မည်။


lcg_value () ကဘာလဲ

LCG_VALUE () PSP တွင်တည်ဆောက်ထားသော Pseudo-Discover Provale မျိုးဆက်မျိုးဆက်လုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည် linearential generator ကိုအခြေခံပြီး [0, 1) ကြားကာလ၌အညီအမျှဖြန့်ဝေသည့် floating point နံပါတ်ကိုပြန်လည်ရောက်ရှိသည်။ ဤလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းဖြင့်သင်ကယူနီဖောင်းကျပန်းဖြစ်ရပ်များကိုပုံဖော်နိုင်ပြီးအသွင်ပြောင်းမှုများမှတစ်ဆင့်ပိုမိုရှုပ်ထွေးသောဖြန့်ဖြူးမှုကိုရရှိနိုင်ပါသည်။

 <?php
$randNum = lcg_value();
echo $randNum; // ထုတ်လုပ်ခြင်း 0 ရောက်လာ 1 အကြား floating အမှတ်နံပါတ်များ
?>

ဖြန့်ဖြူးခြင်းလုပ်ဆောင်ချက်များကို အသုံးပြု. ဖြစ်နိုင်ခြေမော်ဒယ်တစ်ခုဖန်တီးပါ

ဖြစ်နိုင်ခြေမော်ဒယ်သည်ကျပန်း variable များ၏တဖြည်းဖြည်းဖြန့်ဖြူးရေး function ကိုသတ်မှတ်သည်။ ကျနော်တို့ပစ်မှတ်ဖြန့်ဖြူးနှင့်အတူ CDF ရှိပါက F ( x ) F(x) , ထို့နောက်တစ် ဦး ယူနီဖောင်းကျပန်း variable ကိုပေးထားသည် U U n i f o r m ( 0 , 1 ) U \sim \mathrm{Uniform}(0,1) , တွက်ချက်မှုအားဖြင့် X = F ? 1 ( U ) X = F^{-1}(U) (I.E. , ပြောင်းပြန်လုပ်ဆောင်ချက်အသွင်ပြောင်းမှု), ပစ်မှတ်ဖြန့်ဖြူးနှင့်ကိုက်ညီသောကျပန်း variable များကိုသင်ရရှိနိုင်သည်။

ရိုးရိုးလေးပါ

  • Uniform ကျပန်းနံပါတ်များကိုထုတ်လုပ်ရန် lcg_value () ကို သုံးပါ U U

  • ပစ်မှတ်ဖြန့်ဖြူးအသုံးပြု။ CDF function ကို F ? 1 ( U ) F^{-1}(U) ပစ်မှတ်ဖြန့်ဖြူးမှု၏ကျပန်းအရေအတွက်သို့ကူးပြောင်းသည်


လက်တွေ့ကျသောဥပမာ - ကျပန်းဖြစ်နိုင်ခြေဖြန့်ဖြူးမှု၏ကျပန်းနံပါတ်များကိုထုတ်လုပ်ခြင်း

ကျွန်ုပ်တို့တွင်ရိုးရှင်းသော discrete ကျပန်း variable ကိုရှိသည်ဆိုပါစို့ X X ၏တန်ဖိုးသည် {A, B, C} နှင့်သက်ဆိုင်သောဖြစ်နိုင်ခြေမှာ {0.2, 0.5, 0.3} အသီးသီးဖြစ်သည်။ ဤကျပန်း variable ကိုတုပရန် LCG_VALUE () ကို မည်သို့အသုံးပြုရမည်နည်း။

စိတ်ကူးကတော့

  1. ကွဲပြားခြားနားမှုဖြန့်ဖြူးခြင်း (CDF) ၏ cumulative distribution function ကိုတည်ဆောက်ရန် (CDF)

  2. ယူနီဖောင်းကျပန်းနံပါတ် U = \ စာသား {lcg_value} ကိုထုတ်လုပ်ပါ။

  3. အရ u u အရာကြားကာလ ဘယ် 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 နည်းလမ်းကိုလည်းလည်းသက်ဆိုင်သည်။ ဥပမာအားဖြင့်, အဆခွဲဖြန့်ဖြူးသည် λ \lambda , ၎င်း၏ CDF သည်:

F ( x ) = 1 ? e ? λ x F(x) = 1 - e^{-\lambda x}

ပြောင်းပြန် CDF သည်:

F ? 1 ( u ) = ? ln ? ( 1 ? u ) λ F^{-1}(u) = -\frac{\ln(1-u)}{\lambda}

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