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