我正在使用随机数填充一个数组$blockhash[$i] = rand().time().rand()
然后,对于该数组中的每个随机数,我计算对应的 SHA512
$SecretKey = "60674ccb549f1988439774adb82ff187e63a2dfd403a0dee852e4e4eab75a0b3";
$sha = hash_hmac('sha512', $value, $SecretKey);
拆分它:
$pool = str_split($sha, 2);
然后我从 $pool 数组中获取第一个数字,将 hex 转换为 dec 并将其限制在 1 和 50 内:
$dec = hexdec($pool[0]) % 50 + 1;
问题是这些数字不是那么随机,我不知道为什么。我从 1 到 50 计算每个数字的频率,但数字 1、2、3、4、5 和 6 比其他数字出现的频率更高。见图表
为什么会发生这种情况以及如何解决?谢谢!