လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Detailed explanation of gmp_legendre() function in PHP: How to judge square residual and quadratic non-remain

Detailed explanation of gmp_legendre() function in PHP: How to judge square residual and quadratic non-remain

gitbox 2025-06-10

gmp_legendre () function ကဘာလဲ

PHP တွင် GMP_legendre () သည် GMP extension မှ Legendre သင်္ကေတကိုတွက်ချက်ရန် GMP extension မှပေးသော function တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုကိုနံပါတ်သီအိုရီတွင်ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။

function ကိုအဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -

 int gmp_legendre(GMP $a, GMP $p)

$ a သည်တရားစီရင်သည့်ကိန်းဂဏန်းများဖြစ်ပြီး ဒေါ်လာစသည် ထူးဆန်းသည့်အဓိကနံပါတ်တစ်ခုဖြစ်ပြီး parameters နှစ်ခုလုံးသည် GMP အမျိုးအစားဖြစ်ရမည်။

Lejeune သင်္ကေတ၏အဓိပ္ပါယ်နှင့်အဓိပ္ပါယ်

LeiAnder သင်္ကေတသည်သင်္ချာဆိုင်ရာသင်္ချာဆိုင်ရာသင်္ချာဆိုင်ရာသင်္ကေတတစ်ခုဖြစ်ပြီး OneGer သည် Prime Modulus အောက်တွင် quadratic neapual quadratic neapual quadual ဖြစ်သည်။ သင်္ချာအဓိပ္ပါယ်ဖွင့်ဆိုချက်ကိုအောက်ပါအတိုင်းဖြစ်သည် -

(A / P) = A (P? 1) / 2 MOD P

ဤနေရာတွင် မည် သည့်ကိန်းဂဏန်းမဆိုနှင့် P သည်ထူးဆန်းသည့်အဓိကနံပါတ်ဖြစ်သည်။ ရလဒ်များကိုအောက်ပါအတိုင်းဖြစ်သည် -

  • ရလဒ်က 1 ဖြစ်ခဲ့ရင် ဒါက p ရဲ့စတုရန်းကစတုရန်းပေဖြစ်တယ်။
  • ရလဒ်က ဘာလဲ 1 , ဆိုလိုတာကဒါဟာ တစ် ဦး ကဒုတိယမြောက်အကြွင်းအကျန်ဟုဆိုလိုသည်
  • ရလဒ်က 0 ဖြစ်တယ်ဆိုရင်ဒါက A နဲ့ P မှာဘုံအချက်များ (သို့) 0 = 0 ကို ဆိုလိုသည်။

gmp_legendre () function ကို၏အမှန်တကယ်အသုံးပြုမှု

ထို့နောက် GMP_legendre ကိုမည်သို့အသုံးပြုရမည်ကိုသရုပ်ဖော်ရန်ဥပမာနှစ်ခုကိုအသုံးပြုသည်။

နံပါတ်နှစ်ထပ်ကိန်းရှိမရှိဆုံးဖြတ်ပါ

 
$a = gmp_init(5);
$p = gmp_init(7);
$ls = gmp_legendre($a, $p);
if ($ls == 1) {
    echo "$a ဟုတ်ကဲ့ $p ကျန်ရှိသောစတုရန်း";
} else {
    echo "$a 不ဟုတ်ကဲ့ $p ကျန်ရှိသောစတုရန်း";
}

output သည် "5 ကျန်ရှိနေသေးသောစတုရန်းပေတည်း" ဖြစ်သည်။

အရေအတွက်က quadratic နှင့် non- ကျန်ရှိသောရှိမရှိဆုံးဖြတ်ရန်

 
$a = gmp_init(5);
$p = gmp_init(11);
$ls = gmp_legendre($a, $p);
if ($ls == -1) {
    echo "$a ဟုတ်ကဲ့ $p အလယ်တန်း Non- ကျန်ရှိသော";
} else {
    echo "$a 不ဟုတ်ကဲ့ $p အလယ်တန်း Non- ကျန်ရှိသော";
}

ဤကျင့်ထုံး၏ output သည် "5 သည်ဒုတိယမြောက်ကျန်ရှိနေသေးသော 11 ဦး မဟုတ်တော့ပါ" ဖြစ်သည်။

gmp_legendre ကိုအသုံးပြုသည့်အခါမှတ်စုများ ()

gmp_w_legendre () function ကိုခေါ်သည့်အခါ, အောက်ပါအချက်များကိုဂရုပြုရန်လိုအပ်သည်။

  • parameters နှစ် ဦး စလုံးသည် Type GMP ၏ကိန်းဖြစ်ရမည်။
  • ဒုတိယ parameter သည် $ p သည် ထူးဆန်းသည့်အဓိကနံပါတ်တစ်ဖြစ်ရမည်။
  • ဒီ function ကိုမသုံးမီ PHP သည် GMP extensions များကို install လုပ်ပြီးသေချာအောင်လုပ်ပါ။

အကျဉ်းချုပ်

GMP_legendre () သည် PRESE Modulus အောက်ရှိစတုရန်းမွဲဖြင့်တစ် ဦး ကိန်းဂဏန်းရှိမရှိဆုံးဖြတ်ရန်သင့်လျော်သောလက်တွေ့ php သင်္ချာဆိုင်ရာ function ဖြစ်သည်။ ၎င်းသည် PHP နှင့် Nume Theold ၏ပေါင်းစပ်မှုပေါင်းစပ်မှုကိုလေ့လာခြင်းအတွက်ကောင်းမွန်သောကိရိယာတစ်ခုသာမက cryptography, algorithm ပြိုင်ပွဲနှင့်အခြားနယ်ပယ်များတွင်လက်တွေ့ကျသောလျှောက်လွှာတန်ဖိုးရှိသည်။ ၎င်းကိုအသုံးပြုသောအခါ GMP အမျိုးအစားနှင့် parameter လိုအပ်ချက်များကိုအာရုံစိုက်ရန်သာလိုအပ်ပြီး Lejander သင်္ကေတ၏တွက်ချက်မှုကိုအောင်မြင်စွာဖြည့်စွက်နိုင်သည်။

ကိုးကားခြင်း

  • Liu Rujia ။ "ကိန်းနှင့် polynomial algorithms" ။ ပေကျင်း - Tsinghua တက္ကသိုလ်စာနယ်ဇင်း, 2008 ။
ဆက်စပ်အကြောင်းအရာ