လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP သည် hanming အကွာအဝေး sum တွက်ချက်မှုဥပမာ

PHP သည် hanming အကွာအဝေး sum တွက်ချက်မှုဥပမာ

gitbox 2025-06-30

Hanming အကွာအဝေးကဘာလဲ?

Hamming အကွာအဝေးသည်တန်းတူအရှည်နှစ်ခုအကြားကွဲပြားခြားနားသောစာလုံးအရေအတွက်ကိုတိုင်းတာရန်နည်းလမ်းဖြစ်သည်။ အထူးသဖြင့် stries နှစ်ခု၏သက်ဆိုင်ရာရာထူးများတွင်ကွဲပြားခြားနားသောရာထူးအရေအတွက်နှင့်အတူဇာတ်ကောင်အရေအတွက်သည် hanming အကွာအဝေးဖြစ်သည်။

ဥပမာ, အောက်ပါကြိုးနှစ်ချောင်းကိုသုံးသပ်ကြည့်ပါ။

"abcdefgh" နှင့် "AbcXtDHY"

4 င်းတို့၏သံတူအကွာအဝေးသည် 4, 5, 6 နှင့် 8 တွင်စာလုံးများကွဲပြားသောကြောင့် 4 ဖြစ်သည်။

Hamming အကွာအဝေး၏ပေါင်းလဒ်တွက်ချက်မှုဥပမာ Php

အောက်ဖော်ပြပါအတိုင်းကျွန်ုပ်တို့သည်တူညီသောအရှည်ရှိသော binary strings များပါ 0 င်သည်ဆိုပါစို့။

 
// မျိုးစုံတန်းတူအရှည် binary strings ပါသောခင်းကျင်း
$array = ["1100", "1010", "1111", "0000"];

ဤမေးခွန်းမှာဤကြိုးများအကြားရှိတာ 0 န်များပမာဏကိုမည်သို့တွက်ချက်ရမည်နည်း။ သံလိုက်အကွာအဝေးကိုတွက်ချက်သော function ကိုပထမ ဦး ဆုံးသတ်မှတ်နိုင်သည်။

 
/**
 * hanming ၏အကွာအဝေးတွက်ချက်
 * @param string $str1
 * @param string $str2
 * @return int
 */
function hammingDistance($str1, $str2) {
    $dist = 0;
    $n = strlen($str1);
    for ($i = 0; $i < $n; $i++) {
        if ($str1[$i] !== $str2[$i]) {
            $dist++;
        }
    }
    return $dist;
}

ဒီလုပ်ဆောင်ချက်ကကြိုးနှစ်ချောင်းရဲ့ဇာတ်ကောင်တစ်ယောက်စီကိုဖြတ်သွားတယ်။

ထို့နောက်ကြိုးကြိုးများအားလုံး၏သံကြိုးအကွာအဝေးပမာဏကိုတွက်ချက်ရန်နှစ်ထပ်ကွင်းဆက်ကိုသုံးနိုင်သည်။

 
$len = count($array);
$sum = 0;
for ($i = 0; $i < $len; $i++) {
    for ($j = $i + 1; $j < $len; $j++) {
        $sum += hammingDistance($array[$i], $array[$j]);
    }
}
echo $sum; // ထုတ်လုပ်ခြင်း 10

ဤလုပ်ငန်းစဉ်မှတစ်ဆင့်ကျွန်ုပ်တို့သည် Array ရှိ Binary ကြိုးများအားလုံးအကြားရှိမာ့ခ်အကွာအဝေးများကိုကျွန်ုပ်တို့ရယူနိုင်သည်။

ဥပမာရှင်းလင်းချက်

Array သည် "1010", "1010", "1010", "00000", "00000"], Binary strings ၏တူတူပင်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 1100
1010   2
1111 3 1
0000 4 2 5

ထို့ကြောင့်သံကြိုး၏စုစုပေါင်းအကွာအဝေးမှာ 10 ။

အကျဉ်းချုပ်

ဤဆောင်းပါးသည်သံကြိုးအကွာအဝေး၏အခြေခံအယူအဆကိုမိတ်ဆက်ပေးပြီး Binary ကြိုးမျိုးစုံအကြားရှိမာ့ခ်အကွာအဝေးပမာဏကိုမည်သို့တွက်ချက်ရမည်ကိုပြသသည့် PHP ဥပမာအားပြသသည်။ Hanming အကွာအဝေးကိုအချက်အလက်ထုတ်လွှင့်ခြင်း, စာဝှက်ခြင်းနှင့်အမှားပြင်ဆင်ချက်များ၌ကျယ်ကျယ်ပြန့်ပြန့်အသုံးပြုသည်။ ဤနည်းလမ်းကိုကျွမ်းကျင်ခြင်းသည်သက်ဆိုင်ရာပြ problems နာများကိုပိုမိုဖြေရှင်းရန်ကျွန်ုပ်တို့ကိုပိုမိုကောင်းမွန်သောဖြေရှင်းနိုင်သည်။