【发布时间】:2017-12-26 12:25:51
【问题描述】:
我需要一个哈希函数,将值 0-9 映射到 0、10-19 映射到 1、20-29 映射到 2、30-39 映射到 3、-1 映射到 -9 映射到 -1、-10 映射到 - 19 到 -2 等
int hash (int value) {
return (int)(value / 10);
}
适用于正数,但 0 到 -9 映射到 0,负数是错误的。我该怎么做才能解决这个问题?
【问题讨论】:
-
如何将
0映射到1和-1? -
已修复。负数应该给出一个负散列,我也只包括十进制值(-0.00000001),但实际上这个函数需要一个整数,所以这无关紧要
-
为什么会有Java标签?
-
边界现在是倾斜的。它们应该是
-1 to -10、-11 to -20等等。