my_pwd/hash/
mod.rs

1/// 梅森哈希
2///
3/// 用梅森素数127计算哈希值
4///
5/// # 示例
6/// ```
7/// use hash::merhash::mersenne_hash;
8/// let seed:&str = "katte";
9/// let hash = mersenne_hash(seed);
10/// assert_eq!(830583, hash);
11/// ```
12pub fn mersenne_hash(seed: &str) -> usize {
13    let mut hash = 0;
14
15    for (i, c) in seed.chars().enumerate() {
16        hash += (i + 1) * (c as usize)
17    }
18
19    (hash % 127).pow(3) - 1
20}