神奇的魔法数字0x61c88647

来源JDK源码,产生的数字分布很均匀

用法代码如下。

# -*- coding: utf-8 -*-
HASH_INCREMENT = 0x61c88647


def magic_hash(n):
    for i in range(n):
        nextHashCode = i * HASH_INCREMENT + HASH_INCREMENT
        print nextHashCode & (n-1)

magic_hash(16)

 

转载于:https://www.cnblogs.com/jsben/p/5174696.html

你可能感兴趣的:(java)