PHP的Mhash擴充套件函式的學習
計算兩個整數的漢明距離
一般在對比檔案內容的時候用的比較多,比如:對比兩個檔案內容相似度。
如果對內容查重感興趣可以看我另一篇文章:
*
* @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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習PHP中統計擴充套件函式的使用PHP套件函式
- PHP的Sodium加密擴充套件函式了解PHP加密套件函式
- PHP的SPL擴充套件庫(四)函式PHP套件函式
- PHP的命令列擴充套件Readline相關函式學習PHP命令列套件函式
- 編寫自己的php擴充套件函式 (轉)PHP套件函式
- 學習一個PHP中用於檢測危險函式的擴充套件TaintPHP函式套件AI
- 編寫自己的php擴充套件函式(一) (轉)PHP套件函式
- 學習PHP中YAML操作擴充套件的使用PHPYAML套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- 重學ES6 函式的擴充套件(上)函式套件
- PHP中非常好玩的Calendar擴充套件學習PHP套件
- HIVE自定義函式的擴充套件Hive函式套件
- Kotlin擴充套件函式Kotlin套件函式
- Z 函式(擴充套件KMP)函式套件KMP
- 學習PHP中好玩的Gmagick影像操作擴充套件的使用PHP套件
- PHP中的MySQLi擴充套件學習(三)mysqli的基本操作PHPMySql套件
- sql中的擴充套件學習SQL套件
- PHP擴充套件開發就是一個自己的PHP擴充套件PHP套件
- ES6之函式的擴充套件函式套件
- Kotlin的幾個擴充套件函式Kotlin套件函式
- 使用Kotlin擴充套件函式擴充套件Spring Data案例Kotlin套件函式Spring
- C# 2008 學習筆記 - 擴充套件函式C#筆記套件函式
- 一起學習PHP中的Tidy擴充套件庫PHP套件
- es6-函式擴充套件函式套件
- 寫擴充套件性好的程式碼:函式套件函式
- 新增php擴充套件PHP套件
- php ubuntu 擴充套件PHPUbuntu套件
- Laravel深入學習7 – 框架的擴充套件Laravel框架套件
- 高擴充套件性的學習路線套件
- Kotlin-常用擴充套件函式Kotlin套件函式
- Kotlin基礎 — 擴充套件函式Kotlin套件函式
- php mysqli擴充套件庫的使用PHPMySql套件
- 新增php的memcached擴充套件模組PHP套件
- 安裝PHP的memcache擴充套件PHP套件
- ES6入門之函式的擴充套件函式套件
- 建立 PHP 擴充套件包步驟 -- 課程學習分享PHP套件
- 《從零開始學Swift》學習筆記(Day 51)——擴充套件建構函式Swift筆記套件函式