6月,易经占卜网页新增了动画效果,并对随机数生成方法进行了完…
6月,易经占卜网页新增了动画效果,并对随机数生成方法进行了完善。
6月之前,传统占卜随机数产生方法:
万物策数11520 * 当天0时起至占卜时的毫秒数之和,作为种子数,种子数影响线性同余生成器产生随机数。
6月改版后,引入熵池随机数,首先从占卜者电脑或手机获取6组32位随机二进制熵池随机数:
会自动生成6组十进制大正整数,最小0,最大(2^32)-1,如:
[284719284, 4102948112, 192847, 339481023, 22849102, 110294811]
(第1组熵池随机数÷11520求余数) * 当天0时起至占卜时的毫秒数之和 + (第2组熵池随机数÷11520求余数)
产生一个种子数,种子数与第3组、第4组、第5组及第6组熵池随机数 加 减 ~乘(取反) 异
产生4组随机数,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),按比例:
蓍草占卜1:5:7:3
铜钱占卜1:3:3:1
现代占卜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 信号强度变化等