Як вийшов Кнут А?


9

При інтерпретації ключів як натуральних чисел ми можемо використовувати таку формулу.

h(k)=m(kAmod1)

Що я маю проблеми з розумінням - це те, як ми обираємо значення A де:

0<A<1

За Кнутом оптимальне значення:

A(51)/2=0.6180339887...

Отже, моє запитання полягає в тому, як Кнут прийшов до цього і як я міг обчислити оптимальне значення для моїх конкретних даних?


3
Мені просто цікаво, що ... та googling, які насправді привели посилання на "Knuth стверджує, що повторне множення на золоте співвідношення мінімізує прогалини в хеш-просторі, і, отже, це хороший вибір для комбінування разом кілька клавіш, щоб утворити одну. " A=1+ϕ
Ахмед Масуд

1
Якщо я пам'ятаю правильно, це пояснюється в одній із вправ, в якому сенсі добре розподіляється в одиничному інтервалі. Зараз у мене немає книги для перевірки. kAmod1
Раду ГРИГо

1
@RaduGRIGДобре відома теорема про те, що є рівномірно розподіленим модулем для будь-якого ірраціонального (теорема 6.3 «Ірраціональних чисел» Нівена). Можливо, - найкращий вибір у певному сенсі. A,2A,1AA=1+ϕ
дідес

2
Немає такого поняття, як "більш оптимальне"; це як сказати "краще". Або це оптимальне значення, або це не так.
Джефф

2
Варто зазначити, що цю цінність використовують і природні процеси. Зокрема, золотий кут регулює розміщення пелюсток, квіток тощо у багатьох рослинах. Обертання на цей кут можна застосовувати неодноразово, коли розміщувати точки навколо кола, і точки будуть рівномірно розташовані (в межах постійного коефіцієнта).
Джеймс Кінг

Відповіді:


19

Дивіться вправу 9 розділу 6.4 «Мистецтво комп’ютерного програмування» .

Будь-який ірраціональний працював би, тому що розбиває найбільший проміжок (я використовую позначення для ).A{kA}{A},{2A},,{(k1)A}{x}xmod1

Але якщо або , він має особливу властивість: це єдині значення, для яких жоден з двох новостворених прогалин не перевищує вдвічі більше, ніж інший.A=ϕ1A=ϕ2


7
Також розмір найменшого зазору максимально великий.
Jeffε
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.