PHP的Mhash擴充套件函式的學習

wh7577發表於2021-09-09

計算兩個整數的漢明距離


一般在對比檔案內容的時候用的比較多,比如:對比兩個檔案內容相似度。
如果對內容查重感興趣可以看我另一篇文章:

*
 * @param Integer $x
 * @param Integer $y
 * @return Integer
 */
function hammingDistance(int $x, int $y) {

    //計算整個整數的二進位制值
    $x_hash = decbin($x);
    $y_hash = decbin($y);
    
    //使兩個整數轉換出來的二進位制統一長度 - 左邊填充 0
    $x_hash = str_pad($x_hash, 64, '0', STR_PAD_LEFT);
    $y_hash = str_pad($y_hash, 64, '0', STR_PAD_LEFT);

    //計算漢明距離
    $result = hd($x_hash, $y_hash);

    return $result;
}

/**
 * @param Integer $x
 * @param Integer $y
 * @return Integer
 */
function hd(int $h1, int $h2)
{
    $dist = 0;
    for ($i=0;$i<4;$i++) {
        if ( $h1[$i] != $h2[$i] )
            $dist++;
    }
    return $dist;
}

$result = hammingDistance(1,4);
print_r($result);

?>

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2480/viewspace-2797609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章