跑跑车首页

当前位置:首页攻略秘籍单机攻略 → 我的世界命令方块教程平方取中法产生四位伪随机分数

我的世界命令方块教程平方取中法产生四位伪随机分数

作者:佚名来源:本站整理 发表时间:2016/2/29 9:32:16 评论(1)

小编为大家带来了《我的世界》命令方块教程平方取中法产生四位伪随机分数,自然界中的理想随机便是:进行无限次执行后一种情况出现的频率=这种情况的概率。

计算机中的随机的原理都是算法,往往结果都有一种特定的趋势,因此都被归类为伪随机。

伪随机算法有很多,计算机中常用的随机函数往往都是取随机效力较高(趋势趋近真随机)并且资源消耗少的算法

而伪随机算法中有几个不变的模式:种子 公式 迭代

种子:一段变化量;

公式:使种子不按照特定规律得到另一个或一组值的公式;

迭代:重复执行公式获得最终不可预料的值。

冯·诺伊曼在1946年提出的平方取中法就是一种例子。在效率不高的当年这种随机公式效率高,但是随机效力不怎么样,适用于数值积分计算机

具体算法:

百度百科 - 平方取中法

展示


 

模块全部

 

按下按钮等待计算

 

得到最终随机值

模块


 

Main():调用产生模块

Time():一个默认周期7的时钟,产生迭代次数并产生补数数值(就是补充后确保让最终数值能够顺利继续按照法则执行)

Seed():一个默认周期23的时钟,产生基数种子(在现代计算机中往往运用系统时间、文件路径、计算机名等作为种子)

 

SubS():截取平方的后9位

SubT():截取平方的后8位

SubD():补数

SubF():最终值

特殊原理


1.算法

 

算法整体原理就是把n位种子平方后的值(必须为2n位)取中间n位(n为偶数)

2.取中

为了避免20次枚举,我使用了两个模块取中,具体原理就是:

-a . +a-b . -a+2b . +a-3b ……到小于指定位数为止

3.双种子

构建方法为两个质数周期时钟。如果实在是嫌模块效率将Time每次增量设为5或3,Seed每次增量设为31以上质数。

具体方法详见模块

模块因为互相关联,为了简化所以逻辑比较复杂,因此无法一条一条分析

但是提供存档供研究:

http://pan.baidu.com/s/1pKrmFxh


玩家评论
我要点评

网名 注:您的评论需要经过审核才会显示出来。

已有 1 位玩家参与点评
下载排行