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

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

為何哈希函數(shù)取余法要避免2的冪?

為何哈希函數(shù)取余法要避免2的冪?

qq_遁去的一_1 2019-03-30 09:28:06
百科上說(shuō)直接取余法:f(x):=xmodmaxM;maxM一般是不太接近2^t的一個(gè)質(zhì)數(shù)。聽(tīng)說(shuō)是為了盡量避免沖突,我搞不懂怎么就能避免了?
查看完整描述

2 回答

?
Helenr

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

我覺(jué)得這個(gè)是從二進(jìn)制的角度考慮的。接近2^i的種子,二進(jìn)制表達(dá)時(shí)中間必然產(chǎn)生大段的0或1。
那么以10000000000011這個(gè)種子為例,把它翻n倍:
1000000000001100
110000000001001
100000000000110
10000000000011
可以看到,如果種子過(guò)于接近2^i,那么無(wú)論如何翻倍,種子中間仍然會(huì)有大段的0或1。
取余運(yùn)算的本質(zhì)無(wú)非是個(gè)減去種子n倍的減法。那么做減法的時(shí)候,種子中間大段的0或1就會(huì)讓哈希原值的中間一段,有非常大的可能性仍然保持原樣。
哈希函數(shù)的本質(zhì)目的就是混淆,原值的變化產(chǎn)生哈希值無(wú)規(guī)律、等概率、不可預(yù)測(cè)、不能逆推的變化為最佳。
如果做完哈希運(yùn)算之后,哈希值和原值中間居然有一大段二進(jìn)制位保持不變,那么這個(gè)哈希函數(shù)就可以說(shuō)是失敗到不能再失敗了。
當(dāng)然必須說(shuō)明的是:簡(jiǎn)單取余這個(gè)哈希函數(shù)本來(lái)就是非常失敗的。簡(jiǎn)單分析即可,不必深究,也不要在任何真正的產(chǎn)品代碼中實(shí)用。
                            
查看完整回答
1 反對(duì) 回復(fù) 2019-03-30
  • 2 回答
  • 0 關(guān)注
  • 592 瀏覽
慕課專欄
更多

添加回答

舉報(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)