解决了起卦使用真随机数的问题

  对于灵机起卦的术数来说,要做到术数上的准确预测,先要找到目前不可预测的数据,然后从这个数据才可推出可预测的结果,这是个颇为矛盾的逻辑。   而不可预测的数据,自然是真随机数了,至于真正的随机数到底是存在还是不存在,这个很难说,是个哲学问题,万物虽然都是概率的呈现,但是概率又是什么决定的?   回正题,一开始从淘宝上查有没有硬件的真随机数发生器,可惜万能的淘宝令人失望了,然后检查电脑的CPU是Inter的,Inter的CPU正好提供有真随机数的发生器,于是动念头想直接访问Inter的CPU,查了一下,需要下载Inter的数学库,于是就去慢慢下载。   下完后竟然发现不能运行,因为版本太老不支持XCode6,所以竟然连安装都不让安装,只好放弃。   于是又查有没有其它办法可以通过这种方式获取随机数,花了许久,运气不错发现篇文章表示Inter提供直接使用汇编指令来访问CPU。   然后麻烦就来了,这个是MAC的系统,编译出来是dylib库,然后尝试通过mono去调用,无论如何也提示调用不了,找不到文件。然后又继续翻网站,终于发现,原来编译时,只能编译成32位的,这样Mono才能调用,来回折腾了几次后,成功实现真随机数的调用了。   不得不说,国内的资料实在不好查,还是英文网站上的资料比较全一些,虽然折腾了一个晚上,但还是值得的,能够实现真随机数的调用,能够解决很多问题。   产生的真随机数图如下:      而相同绘图算法C#生成随机数如下:      比较奇怪的是,差异并不是很明显,是MAC底层的随机数算法做得极好的缘故?所以近似于真实随机数的效果了?   不过想来伪随机数与真随机数还是会有差别,这个需要用大量的卦例进一步检验了。      其它还有一些真随机数的生成办法,不过没有实现,这里也提一下:   在IPAD或是IPhone或是Android机上,是没有CPU能够支持随机数的,要做到能在这些上面更准确的起卦,尤其是梅花卦,应该考虑如下方案来生成熵池起卦:   1、通过访问重力感应,求测者随意摇晃手机,从中搜集精确的数据用来起卦,类似于真实的摇签或摇卦,据在下所知,现在还没有真正如此来实现的,大多的摇晃起卦,实际上是早就用伪随机数起好了,然后摇晃只是发个声而已。   2、求测者随意在屏幕上乱点乱划,然后搜集数据来综合起卦,这样得到的卦测算起来就更加方便,不过这种效果直觉上有略有折扣。   3、打开麦克风,通过麦克风搜集实际的噪音,动态调整振幅后,随机采集数据。这个还可以更加改进,让求测者念一句话,因为发音总有变化,通过提取变化,可以得到真实随机的采样。     4、对使用者用摄像头拍照,根据照片的色彩矩阵做一个运算,从而得到卦,这种起卦方式应该是比较灵验的,顺便还能让卦师结合面相也一起看了,不过有影响隐私的嫌疑。     以上四种起卦方式,可以在移动设备上进行。

Read More

计算机伪随机数会对起卦准确率造成影响

  计算机上的随机数是伪随机,它要么是固定的序列,要么是利用当前的时间来生成的一个随机器。测试了一下MONO在MAC上调用的随机器发生器:让它随机产生坐标,然后标记成白点,产生的结果如下:    如果是在Windows上,使用C#进行生成的300x300的随机图像值是这样:   然而,如果是根据真实的自然环境,由大气的运动(空气中的雷暴产生的噪声)而自然产生随机数应该是这样:   明显可以看出,在MAC上的mono的C#中代码所产生的随机数所形成的密度远远低于真实的随机数,不过唯一值得庆幸的是,如果见到php的随机数生成的样子是多么糟糕,就会更有感触了:    随机数的正确与否,直接关系到起卦的关联性,因为计算机上使用的虽然普遍是伪随机数,但是来的人时间却是不一定的,这样就在一定程度上模拟了随机,但是在出现生成随机比较紧密的时候,它对自然的模拟所体现出来的随机真实度就会大大降低。   术数最讲究的就是对自然的模拟,如果不能进行一个真实的模拟,也就谈不上预测。   典型的一种表现就是,在网上起卦,比如六爻卦,或随机梅花卦,其准确率都会降低,如果是手起摇的卦,大多看事一目了然,看是什么就是什么,但是换成网络起卦后,会出现信息不同程度偏移(注意是不同程度的,有时小有时大)。   信息偏移,比如看是收获当为一万块,网络用卦结果发现只有五千或八千,本来手卦经验很准的数,在网上起卦也就产生了模糊偏差。这就是因为同样的随机数发生器被频繁使用,而导致了整体上的真实度降低。   虽然大多数时候还是可以看事,也多能断得准,但其中难免会有不同程度的信息失真,准的时候就如同上面的点与自然随机点的分布密集恰好重合,不准的时候就是不符合真实随机的时候。   自然的随机性,正如清澈的海边,尽管水一直在波动,但并不会影响人通过清晰地看到水下的鱼。现在网上起卦的,从上面的自然分布来看,很容易明白,信息失真最大的便是php的网站,因为它用的随机数的分布可以说最不自然,所以在起卦上相对也就更加不准。   其次是asp,asp.net等网站,它们的随机数发生器,调用的是相同的低层,生成的随机数模拟度显然比真实的要淡得多,信息也有一定程度的失真。   要成功使用真正有效的随机器,有不少的办法,一种是动态监测系统运行状况或者其它方面搜集信息,然后汇总信息构成随机数生成器,这样产生的随机数值会更加准确,或者直接使用硬件通过USB接口之类的来传送信息,或者如果是使用的Inter的CPU的话,可以直接调用CPU的接口来生成随机数。   如此使用了真随机数,起卦才能有所保证。          

Read More