計算完美HASH

2021-05-27 16:24:42 字數 897 閱讀 9795

// 計算完美hash

#include "stdafx.h"

#include

#include

#include

using namespace std;

// hash函式為 data%hashsize

// 返回完美hash的尺寸

// 失敗返回0

unsigned int getperfecthash(const unsigned int* pdata, size_t inum, size_t imaxhashsize);

int _tmain(int argc, _tchar* argv)

;size_t nnum = sizeof(data)/sizeof(data[0]);

size_t ihashsize = getperfecthash(data, nnum, nnum*3);

cout << "// hashsize = " << ihashsize << endl;

if(ihashsize != 0)

unsigned int  getperfecthash(const unsigned int* pdata, size_t inum, size_t imaxsize)

}delete pconflict;

return 0;

}// 執行結果:

// hashsize = 22

// hash(204) = 6

// hash(83) = 17

// hash(111) = 1

// hash(103) = 15

// hash(46) = 2

// hash(115) = 5

// hash(82) = 16

// hash(145) = 13

基於hash方法的相似計算

基於hash的相似度計算方法,是一種基於概率的高維度資料的維度削減的方法,主要用於大規模資料的壓縮與實時或者快速的計算場景下,基於hash方法的相似度計算經常用於高維度大資料量的情況下,將利用原始資訊不可儲存與計算的問題轉化為對映空間的可儲存計算問題,在海量文字重複性判斷方面,近似文字查詢方面有比較...

C 計算檔案的 Hash 值

提供用於計算指定檔案雜湊值的方法 例如計算檔案的md5值 string hashmd5 hashhelper.computemd5 myfile.txt 例如計算檔案的crc32值 string hashcrc32 hashhelper.computecrc32 myfile.txt 例如計算檔案的...

鑽石指標和完美的計算

鑽石的高度計算公式為 鑽石的高度 直徑的三次方 單位公釐 0.00366 允許有 0.03克拉的誤差 例如,0.5克拉的鑽石直徑是5.01公釐,則它的高為 5.01 5.01 5.01 0.00366 0.46 說明0.5克拉的鑽石直徑只有0.46克拉鑽石的直徑,在業內,這種鑽石稱為 煙囪管 為什麼...