Почему Ruby хеширует целое число от n
до 2 * n + 1
?
>> [0,1,2,3].each {|x| puts x.hash}
1
3
5
7
Я вижу, что вам не всегда нужны сложные хэши, особенно для простых объектов. Но почему правило «double and add 1» вместо того, чтобы делать то, что делает Python, то есть хешировать целые числа для себя?
>>> map(hash,[0,1,2,3])
[0, 1, 2, 3]
Есть ли причина?