第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

不同語(yǔ)言版本的 Murmurhash 得到不同的結(jié)果

不同語(yǔ)言版本的 Murmurhash 得到不同的結(jié)果

Go
不負(fù)相思意 2023-07-17 14:21:36
我已經(jīng)在java(jedis和guava)、go和python中嘗試了三個(gè)版本的murmurhash。java(guava)、go和python版本的結(jié)果輸出相同的哈希碼,但與java(jedis)不同。所有 murmurhash 代碼如下所示。我對(duì)結(jié)果感到困惑。我已經(jīng)看到這個(gè)問(wèn)題并Long.reverseBytes在java中使用,但仍然與其他問(wèn)題不同。那么我應(yīng)該怎么做才能使 murmurhash 的所有輸出保持相同。謝謝~1.java版本(jedis)java gradlecompile group: 'redis.clients', name: 'jedis', version: '3.1.0'import redis.clients.jedis.util.MurmurHash;MurmurHash murmurhash = new MurmurHash();long h = murmurhash.hash("foo");System.out.println(h);System.out.println(Long.reverseBytes(h));輸出:-706392247917695964968977581074798324772.golang版本import "github.com/spaolacci/murmur3"foo := int64(murmur3.Sum64WithSeed([]byte("foo"), 0x1234ABCD))fmt.Println(foo)輸出:-58512003251894006363.python版本pip install mmh3import mmh3foo = mmh3.hash64('foo', seed=0x1234ABCD, signed=True)print(foo)輸出:-58512003251894006364. java(番石榴)java gradlecompile group: 'com.google.guava', name: 'guava', version: '28.0-jre'import com.google.common.hash.Hashinglong foo = Hashing.murmur3_128(0x1234ABCD).hashString("foo", charset.forName("UTF-8")).asLong();System.out.println(foo);輸出:-5851200325189400636
查看完整描述

1 回答

?
慕慕森

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊

Jedis 使用 Murmur2,而其他庫(kù)使用 Murmur3。


在將一些代碼從 Java/Jedis 遷移到 Golang 時(shí),我也愛(ài)上了它。

差異是由于雜音版本不同造成的。迄今為止,Jedis 使用的是 Murmur2,而上述其他庫(kù)則使用 Murmur3。

除了查看注釋/代碼之外,我還使用Murmur2 參考實(shí)現(xiàn)驗(yàn)證了這一點(diǎn)。使用相同的種子和密鑰會(huì)產(chǎn)生與 Jedis 示例完全相同的結(jié)果。

代碼片段:

const char *key = "foo";


uint64_t result = MurmurHash64A(key, std::strlen(key), 0x1234ABCD);


std::cout << "? result (unsigned): " << result << std::endl;

std::cout << "? ? result (signed): " << (long) result << std::endl;

std::cout << "reversed byte order: " << __builtin_bswap64(result) << std::endl;

輸出:


? ? result (unsigned): 11382821594532591967

? ? ? result (signed): -7063922479176959649

? reversed byte order:? 6897758107479832477


查看完整回答
反對(duì) 回復(fù) 2023-07-17
  • 1 回答
  • 0 關(guān)注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)