လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP နှင့် GMP extension ကို အသုံးပြု. ကြီးမားသောကိန်း TIPMA TIPMA Theorem ၏စွမ်းဆောင်ရည်စမ်းသပ်မှုနည်းလမ်းကိုအကောင်အထည်ဖော်ခြင်း

PHP နှင့် GMP extension ကို အသုံးပြု. ကြီးမားသောကိန်း TIPMA TIPMA Theorem ၏စွမ်းဆောင်ရည်စမ်းသပ်မှုနည်းလမ်းကိုအကောင်အထည်ဖော်ခြင်း

M66 2025-08-08

Tipperma Theorem မှနိဒါန်း

Tipperma ၏သီအိုရီသည် Nume Theory တွင်အခြေခံသီအိုရီများထဲမှတစ်ခုဖြစ်ပြီးအဓိကနံပါတ်ရှာဖွေရေးတွင်ကျယ်ပြန့်စွာအသုံးပြုသည်။ P-chere နံပါတ်တစ်ခုဆိုပါက P သည် perime နံပါတ်တစ်ခုနှင့်သက်ဆိုင်သောကိန်းဂဏန်းများဖြစ်လျှင် P တွင် {p-1} \ Equiv 1 \ PMOD {pmod {P-1} emod {pmod {p-1} m ။ ဒီသီအိုရီဟာကိန်းကြီးတစ်ခုမှာအဓိကနံပါတ်လို့အတည်ပြုဖို့သုံးနိုင်တယ်။

ကြီးမားသောကိန်းဂဏန်းများကိုလုပ်ဆောင်ရန် GMP extension ကိုမိတ်ဆက်ပေးပါ

PHPT ဇာဇာလုပ်ဆောင်ချက်များသည်စူပါကြီးမားသောကိန်းဂဏန်းများနှင့်ဆက်ဆံရာတွင် GMP extensions များပိုမိုထိရောက်သော Multi-Integer စစ်ဆင်ရေးအထောက်အပံ့များကိုထိရောက်စွာထောက်ပံ့သည်။ ပထမ ဦး စွာ GMP extension ကိုတင်ထားကြောင်းအတည်ပြုရန်လိုအပ်သည်။ ဥပမာသည်အောက်ပါအတိုင်းဖြစ်သည် -

 if (extension_loaded('gmp')) {
    echo "GMPတိုးချဲ့ခြင်းစာကြည့်တိုက်ကိုတင်ခဲ့သည်。";
} else {
    echo "GMPတိုးချဲ့ခြင်းစာကြည့်တိုက်မတင်ပါ。";
    exit;
}

Tipsma Theorem Test Function ကိုအကောင်အထည်ဖော်ခြင်း

Function ကိုသတ်မှတ်ခြင်းအားဖြင့် GMP ၏တိကျသောစစ်ဆင်ရေးလုပ်ဆောင်မှုကိုအသုံးပြုခြင်းဖြင့်ကျပန်းစမ်းသပ်မှုများပြုလုပ်ရန်အတွက်ကြီးမားသောကိန်းဂဏန်းများ၏အဓိကဂုဏ်သတ္တိများကိုကျွန်ုပ်တို့ဆုံးဖြတ်နိုင်သည်။

 function fermatTest($n, $k) {
    for ($i = 0; $i < $k; $i++) {
        $a = gmp_random_range(2, $n - 1);  // ကျပန်းကိန်းရွေးချယ်ပါa
        $result = gmp_powm($a, $n - 1, $n);  // ရေတွက် a^(n-1) mod n
        if (gmp_cmp($result, 1) !== 0) {  // ရလဒ်မဟုတ်ပါဘူး1,nNon-Prime နံပါတ်များ
            return false;
        }
    }
    return true;  // အားလုံးစမ်းသပ်မှုဖြတ်သန်း,nဖြစ်ကောင်း Prime
}

စမ်းသပ်လုပ်ဆောင်မှုအကောင်အထည်ဖော်မှု

Tfefama စစ်ဆေးမှု၏တိကျမှန်ကန်မှုကိုအတည်ပြုရန်အတွက်အထောက်အကူပြုစစ်ဆေးမှု function ကိုသင် သတ်မှတ်. ၎င်းကိုစစ်ဆေးရန်အထက်ပါနည်းလမ်းကိုခေါ်ဆိုနိုင်သည်။

 function testFermatTest($n) {
    if (fermatTest($n, 10)) {  // ဉီးစီး10သိကောင်းစရာများ
        echo "{$n} ဖြစ်ကောင်း Prime。";
    } else {
        echo "{$n} မဟုတ်အဓိကနံပါတ်。";
    }
}

Execution Test Pegally

အောက်ပါဥပမာသည်စူပါကြီးမားသောကိန်းဂဏန်းတွင် Tipma Theorem အရည်အသွေးပြည့်စုံမှုကိုမည်သို့လုပ်ဆောင်ရမည်ကိုပြသသည်။

 <span class="fun">testferment (gmp_init ("100000000000000000000000000000000003") ");</span>

Code တွင် string ကို GMP_INIT မှတစ်ဆင့် GMP ကြီးမားသောကိန်းထဲသို့ပြောင်းလဲပြီးစစ်ဆေးမှုပြုလုပ်ရန်စမ်းသပ်မှုလုပ်ဆောင်ချက်ဟုခေါ်သည်။

အကျဉ်းချုပ်

အထက်ပါအဆင့်များနှင့် PHP ၏ GMP တိုးချဲ့စာကြည့်တိုက်နှင့်ပေါင်းစပ်ပြီး, ကြီးမားသောကိန်းဂဏန်းများအတွက်ထိရောက်သော TIPMA Theorem စစ်ဆေးမှုကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤနည်းလမ်းသည်ရိုးရှင်းပြီးလက်တွေ့ကျသည်။ ကြီးမားသောနံပါတ်များကိုပဏာမတရားစီရင်ခြင်းအတွက်သင့်လျော်သည်။ သို့သော်တိကျမှန်ကန်မှုကိုတိုးတက်စေရန်အစွန်အဖျား fermat စစ်ဆေးမှုကိုအခြား primer detection algorithms နှင့်ပေါင်းစပ်အသုံးပြုသည်။

မကြာသေးမီ ဆောင်းပါးများ