y****e 发帖数: 23939 | 1 有这样一个三个字节的字符串,NT0, NbR, etc., 其中第一个是一个字母,第二个是
【B,b, A, a, T】中的一个,第三个是一个字母或数字。怎样设计一个hash function
能够把它用尽可能少的hash code表示出来。其实也是一个数据压缩的问题。 | t****t 发帖数: 6806 | 2 等概率的话, 加权相加不就好了. 这是数据压缩. 如果是hash就再mod一个数.
【在 y****e 的大作中提到】 : 有这样一个三个字节的字符串,NT0, NbR, etc., 其中第一个是一个字母,第二个是 : 【B,b, A, a, T】中的一个,第三个是一个字母或数字。怎样设计一个hash function : 能够把它用尽可能少的hash code表示出来。其实也是一个数据压缩的问题。
| g*****g 发帖数: 34805 | 3 One liner.
(s[0]*31 + s[1])*31+s[2]
【在 y****e 的大作中提到】 : 有这样一个三个字节的字符串,NT0, NbR, etc., 其中第一个是一个字母,第二个是 : 【B,b, A, a, T】中的一个,第三个是一个字母或数字。怎样设计一个hash function : 能够把它用尽可能少的hash code表示出来。其实也是一个数据压缩的问题。
| y****e 发帖数: 23939 | | c*********e 发帖数: 16335 | 5 为啥是31,用10行不?
【在 g*****g 的大作中提到】 : One liner. : (s[0]*31 + s[1])*31+s[2]
| m*******l 发帖数: 12782 | 6 你见过写hash用偶数的么?
【在 c*********e 的大作中提到】 : 为啥是31,用10行不?
| g*****g 发帖数: 34805 | |
|