跑跑車首頁

當前位置:首頁攻略秘籍單機攻略 → 我的世界命令方塊教程平方取中法產生四位偽隨機分數(shù)

我的世界命令方塊教程平方取中法產生四位偽隨機分數(shù)

作者:佚名來源:本站整理 發(fā)表時間:2016/2/29 9:32:16 評論(1)

小編為大家?guī)砹恕段业氖澜纭访罘綁K教程平方取中法產生四位偽隨機分數(shù),自然界中的理想隨機便是:進行無限次執(zhí)行后一種情況出現(xiàn)的頻率=這種情況的概率。

計算機中的隨機的原理都是算法,往往結果都有一種特定的趨勢,因此都被歸類為偽隨機。

偽隨機算法有很多,計算機中常用的隨機函數(shù)往往都是取隨機效力較高(趨勢趨近真隨機)并且資源消耗少的算法

而偽隨機算法中有幾個不變的模式:種子 公式 迭代

種子:一段變化量;

公式:使種子不按照特定規(guī)律得到另一個或一組值的公式;

迭代:重復執(zhí)行公式獲得最終不可預料的值。

馮·諾伊曼在1946年提出的平方取中法就是一種例子。在效率不高的當年這種隨機公式效率高,但是隨機效力不怎么樣,適用于數(shù)值積分計算機

具體算法:

百度百科 - 平方取中法

展示


 

模塊全部

 

按下按鈕等待計算

 

得到最終隨機值

模塊


 

Main():調用產生模塊

Time():一個默認周期7的時鐘,產生迭代次數(shù)并產生補數(shù)數(shù)值(就是補充后確保讓最終數(shù)值能夠順利繼續(xù)按照法則執(zhí)行)

Seed():一個默認周期23的時鐘,產生基數(shù)種子(在現(xiàn)代計算機中往往運用系統(tǒng)時間、文件路徑、計算機名等作為種子)

 

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

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

SubD():補數(shù)

SubF():最終值

特殊原理


1.算法

 

算法整體原理就是把n位種子平方后的值(必須為2n位)取中間n位(n為偶數(shù))

2.取中

為了避免20次枚舉,我使用了兩個模塊取中,具體原理就是:

-a . +a-b . -a+2b . +a-3b ……到小于指定位數(shù)為止

3.雙種子

構建方法為兩個質數(shù)周期時鐘。如果實在是嫌模塊效率將Time每次增量設為5或3,Seed每次增量設為31以上質數(shù)。

具體方法詳見模塊

模塊因為互相關聯(lián),為了簡化所以邏輯比較復雜,因此無法一條一條分析

但是提供存檔供研究:

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


玩家評論
我要點評

網名 注:您的評論需要經過審核才會顯示出來。

已有 1 位玩家參與點評
下載排行