人工智能通識(shí)-科普-隨機(jī)-3

歡迎關(guān)注我的專欄( つ??ω??)つ【人工智能通識(shí)】



人工智能通識(shí)-2019年3月專題匯總

中間平方法Middle-square method

“Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin.”
——John Von Neumann.

世界上第一臺(tái)計(jì)算機(jī)是1945年制造的ENIAC∥嚎恚現(xiàn)代計(jì)算機(jī)之父馮諾依曼John Von Neumann在它的基礎(chǔ)上改進(jìn)成為真正意義上的現(xiàn)代計(jì)算機(jī)。

而在這個(gè)時(shí)候力麸,計(jì)算機(jī)剛剛起步的時(shí)候捏雌,馮諾依曼就說了這么一句話互婿,如果誰想用數(shù)學(xué)方法生成隨機(jī)數(shù)字,那么他一定是落入了原罪。

馮諾依曼是博弈論的創(chuàng)始人洽腺,在量子力學(xué)方面也很有成就鹏往,在他開啟計(jì)算機(jī)時(shí)代之初淡诗,就指明了真隨機(jī)不可能依靠數(shù)學(xué)和計(jì)算機(jī)方法實(shí)現(xiàn)。

但為了計(jì)算機(jī)的制造伊履,馮諾依曼發(fā)明了一個(gè)很粗糙的偽隨機(jī)PRNG方法:中間平方法韩容。

給定一個(gè)六位數(shù)作為種子,比如675248唐瀑,那么先把它平方群凶,比如得到455959861504,然后再掐頭去尾取中間6個(gè)數(shù)字哄辣,把它當(dāng)做隨機(jī)數(shù)結(jié)果请梢,如圖中的959861。當(dāng)然這個(gè)計(jì)算流程可以繼續(xù)重復(fù)下去力穗,就能得到一些列隨機(jī)六位數(shù)毅弧。

Python代碼如下:

seed_number = int(input("請(qǐng)輸入一個(gè)六位數(shù):"))
number = seed_number
already_seen = set()
counter = 0

while number not in already_seen:
    counter += 1
    already_seen.add(number)
    number = int(str(number * number).zfill(12)[3:9])
    print(f"#{counter}: {number}")

print(f"開始于{seed_number}, 共{counter}步之后出現(xiàn)重復(fù)數(shù)字{number}.")

對(duì)于6位數(shù)來說,一般在數(shù)百次之后就會(huì)發(fā)生重復(fù)循環(huán)当窗。這隨機(jī)方法真的很粗糙够坐。

威爾的PRNG

20世紀(jì)30年代興起的普林斯頓高等研究院IAS可以說是自然科學(xué)的圣地,愛因斯坦超全、計(jì)算機(jī)理論先驅(qū)哥德爾咆霜、原子彈之父奧本海默、現(xiàn)代計(jì)算機(jī)之父馮諾依曼嘶朱,日本數(shù)學(xué)家小平邦彥和華裔物理學(xué)家楊振寧蛾坯、李政道都曾在此學(xué)習(xí)或工作。

馮諾依曼是個(gè)猶太人疏遏,原本居住匈牙利脉课,然而由于希特勒的統(tǒng)治影響救军,他來到了美國(guó)。而把他介紹到普林斯頓的正是另一位偉大的科學(xué)家赫爾曼·威爾Hermann Weyl倘零。

威爾這次又改進(jìn)了馮諾依曼的中間平方隨機(jī)程序唱遭。

這是一段C++代碼:

#include <stdint.h>
#include <stdio.h>

uint64_t x = 0, w = 0, s = 0xb5ad4eceda1ce2a9;

inline static uint32_t msws() {

   x *= x; 
   x += (w += s); 
   return x = (x>>32) | (x<<32);

}
int main(){
    for(int i=0;i<10;i++){
        printf("%d\n",msws());
    }
}

雙箭頭在這里是移位操作,<<相當(dāng)于乘以2的32次方呈驶,>>則是除以2的32次方拷泽。
這里的思路是每次都把種子x平方,并且加上一個(gè)w袖瞻,而且w每次都增大s司致,這里s是個(gè)很大十六進(jìn)制數(shù)字,它足以超過2的32次方聋迎。

注意x,w,s都是uint64脂矫,是64位的,而msws()返回的是uint32位數(shù)字霉晕,實(shí)際上這相當(dāng)于對(duì)大數(shù)字進(jìn)行截取成為小數(shù)字庭再,本質(zhì)是和馮諾依曼截取平方數(shù)字的中間部分是一個(gè)道理。

用0x開頭表示是16進(jìn)制牺堰,即不是0到9之后進(jìn)1位拄轻,而是0...9abcdef再進(jìn)一位,共0到f十六個(gè)數(shù)字萌焰。

運(yùn)行后會(huì)輸出一串隨機(jī)的數(shù)字哺眯。

看上去還不錯(cuò),這個(gè)可能是目前最快的偽隨機(jī)程序算法扒俯,因?yàn)樗挥屑臃套俊⒊朔ê鸵莆徊僮鳌?/p>


歡迎關(guān)注我的專欄( つ??ω??)つ【人工智能通識(shí)】


每個(gè)人的智能新時(shí)代

如果您發(fā)現(xiàn)文章錯(cuò)誤,請(qǐng)不吝留言指正撼玄;
如果您覺得有用夺姑,請(qǐng)點(diǎn)喜歡;
如果您覺得很有用掌猛,歡迎轉(zhuǎn)載~


END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末盏浙,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子荔茬,更是在濱河造成了極大的恐慌废膘,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慕蔚,死亡現(xiàn)場(chǎng)離奇詭異丐黄,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)孔飒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門灌闺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艰争,“玉大人,你說我怎么就攤上這事桂对∷ψ浚” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵蕉斜,是天一觀的道長(zhǎng)逾柿。 經(jīng)常有香客問我,道長(zhǎng)蛛勉,這世上最難降的妖魔是什么鹿寻? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮诽凌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘坦敌。我一直安慰自己侣诵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布狱窘。 她就那樣靜靜地躺著杜顺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蘸炸。 梳的紋絲不亂的頭發(fā)上躬络,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音搭儒,去河邊找鬼穷当。 笑死,一個(gè)胖子當(dāng)著我的面吹牛淹禾,可吹牛的內(nèi)容都是我干的馁菜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铃岔,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼汪疮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起毁习,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤智嚷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后纺且,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體盏道,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年隆檀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摇天。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片粹湃。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖泉坐,靈堂內(nèi)的尸體忽然破棺而出为鳄,到底是詐尸還是另有隱情,我是刑警寧澤腕让,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布孤钦,位于F島的核電站,受9級(jí)特大地震影響纯丸,放射性物質(zhì)發(fā)生泄漏偏形。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一觉鼻、第九天 我趴在偏房一處隱蔽的房頂上張望俊扭。 院中可真熱鬧,春花似錦坠陈、人聲如沸萨惑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽庸蔼。三九已至,卻和暖如春贮匕,著一層夾襖步出監(jiān)牢的瞬間姐仅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工刻盐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留掏膏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓隙疚,卻偏偏與公主長(zhǎng)得像壤追,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子供屉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355