6月,易经占卜网页新增了动画效果,并对随机数生成方法进行了完善。
6月之前,传统占卜随机数生成方法:
万物策数11520 * 当天0时起至占卜时的毫秒数之和,作为种子数,种子数影响线性同余生成器生成随机数。
6月改版后,引入熵池随机数,首先从使用者电脑或手机获取6组32位二进制熵池随机数:
会自动生成6组十进制正整数,最小0,最大(2^32)-1,如:
[284719284, 4102948112, 192847, 339481023, 22849102, 110294811]
万物策数11520 * (第1组熵池随机数÷4096求余数) * 当天0时起至占卜时的毫秒数 + (第2组熵池随机数÷11520求余数)
以上计算生成的种子数与第3组、第4组、第5组及第6组熵池随机数 加 减 ~乘(取反) 异
再把生成的4组随机数拼接后,作为SFC32随机数生成器的种子数生成0-1之间的随机数
即:2^32,2^32,2^32,2^32 = 2^128
0至1理论上:
内部状态组合有 2^128 种
单次取值 2^32 种 约42.9亿
然后,按比例把0-1分成四个概率区间,随机数落到哪个区间,就返回对应的爻(6、7、8、9):
蓍草6、7、8、9比例1:5:7:3
铜钱6、7、8、9比例1:3:3:1
现代6、7、8、9比例1:2:2:1
即,如果让计算机自动占卜100万次,6789出现的理论概率:
蓍草:6=6.25%,7=31.25%,8=43.75%,9=18.75%,6+8=50%,7+9=50%,6+9(动爻)=25%
铜钱:6=12.5%,7=37.5%,8=37.5%,9=12.5%,6+8=50%,7+9=50%,6+9(动爻)=25%
现代:6=16.67%,7=33.33%,8=33.33%,9=16.67%,6+8=50%,7+9=50%,6+9(动爻)=33.34%
易经64卦变化图和数字占卜中的也使用了类似的方法。
关于熵池随机数
熵池会不断收集硬件生成的各类微小、无法预测的数据。例如:
用户敲击键盘的间隔时间(精确到微秒)。
鼠标移动的轨迹和速度
硬盘读写磁头运动的微小延迟
网络数据包到达的间隔等
手机加速度传感器(陀螺仪)的抖动
摄像头传感器的噪点
触控屏的微小坐标偏差
Wi-Fi 信号强度变化等
❌ 老式计算机(如Windows Vista及更低版本)、手机(Android 4.3或iOS 6及更低版本)、IE10及更低版本浏览器、Tor浏览器以及App内置浏览器等可能不支持熵池随机数,会退回普通随机