Knuth是如何得出A的?


9

当将键解释为自然数时,我们可以使用以下公式。

h(k)=m(kAmod1)

我无法理解的是我们如何选择A的值,其中:

0<A<1

根据Knuth,最佳值为:

A(51)/2=0.6180339887...

所以我的问题是Knuth是如何得出的,我如何为我的特定数据计算最佳值?


3
我只是发现有趣的是 ...并实际上引用了“ Knuth认为,黄金比率的重复乘法将最小化哈希空间中的间隙,因此这是组合在一起的好选择多个键组成一个。” A=1+ϕ
艾哈迈德·马苏德

1
如果我没记错的话,在一项练习中已经解释了kAmod1在单位间隔中的分布情况。不过,我现在没有书可以检查。
Radu GRIGore 2012年

1
@RaduGRIGore这是一个众所周知的定理说是均匀分布的模为任何不合理的(尼文的“无理数”的定理6.3)。从某种意义上说,也许是最佳选择。A,2A,1AA=1+ϕ
didest'1

2
没有“更好”的东西。就像说“更好”。要么是最优值,要么不是最优值。
杰夫斯

2
值得指出的是,自然过程也使用此值。具体来说,黄金角决定着许多植物中花瓣,小花等的位置。当将点围绕一个圆放置时,可以重复应用此角度的旋转,并且这些点将均匀分布(在一个恒定因子内)。
詹姆斯·金

Answers:


19

请参阅“计算机编程艺术”第6.4节的练习9 。

任何不合理的都会起作用,因为会打破的最大差距(我使用代表)。A{kA}{A},{2A},,{(k1)A}{x}xmod1

但是,如果或,则它具有一个特殊的属性:这是两个新创建的间隙中唯一一个长度都不大于其两倍的值。其他。A=ϕ1A=ϕ2


7
而且,最小间隙的尺寸尽可能大。
杰夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.