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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

hash()%n 和 n%hash() 有什么區(qū)別

hash()%n 和 n%hash() 有什么區(qū)別

嗶嗶one 2021-08-19 16:05:06
在許多書籍、教學(xué)大綱、教程中,我看到找到一個項目的合適單元格的一個好選擇是計算單元格的數(shù)量: item.hash()%(n-1) = # of the  bucket.但是為什么要提到這個特定的表達呢?倒數(shù)(n-1)%item.hash() = # of the  bucket與它有何不同?PS我知道Java HashMap使用(n - 1) & hash,我只想抓住這兩種方法之間稀疏鍵的區(qū)別。
查看完整描述

3 回答

?
四季花海

TA貢獻1811條經(jīng)驗 獲得超5個贊

將運算符模數(shù)%視為通過在較小范圍內(nèi)減少一組數(shù)字來均勻分布一組數(shù)字的方法。這組數(shù)字當然是輸入鍵的哈希碼。小范圍是表的容量。

當您想在小表中分配索引以存儲大數(shù)字時,這是一種有用的技術(shù)。

逆運算聽起來很奇怪(而且沒用):考慮到哈希碼是大數(shù)且 n 很小,n % hash將返回 always n,因此它根本沒有興趣。

Javahash & (length-1)確實通過 選擇索引,這在算術(shù)上并不等同于hash % length,但它是一種替代 - 并且比模數(shù) - 減少和分發(fā)的公式便宜(歸功于@Zabuza)。


查看完整回答
反對 回復(fù) 2021-08-19
?
FFIVE

TA貢獻1797條經(jīng)驗 獲得超6個贊

桶的倒數(shù) (n-1)%item.hash() = # 與它有何不同?

基本上是行不通的。

該表達式需要將哈希碼縮減為 0 .. n - 1 范圍內(nèi)的值,以便將其用作大小為 n 的數(shù)組的下標。

但是“逆”函數(shù)不會這樣做。因此,如果您嘗試使用它,(所謂的)桶下標會給出異常,因為對于 Javaint類型范圍內(nèi)的大多數(shù) h 值, h % (n - 1) > (n - 1) 或 < 0 。

正如@Zubuza 指出的那樣,余數(shù) (%) 和除法 (/) 不是可交換的。


查看完整回答
反對 回復(fù) 2021-08-19
  • 3 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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