首頁 都市

你好1986

12.微機(jī)是啥玩意兒?

你好1986 夢(mèng)三萬 2019 2022-11-14 20:44:43

  只見姚夏在信紙上寫到:

  uint mt_seed(uint seed, uint *mt, int n)

  {

  int i;

  memset(mt, 0x00, n*sizeof(uint));

  for(i=1; i

  {

  mt[i]= MT_199332_F *(mt[i-1]^mt[i-1]>>(MT_199332_W-2))+i;

  }

  return mt[n-1];

  }

  ……

  (前面一大堆宏和結(jié)構(gòu)體定義我就不寫了,大家看著是個(gè)意思就行。)

  這是用C語言寫的,當(dāng)前部分是用來編寫隨機(jī)數(shù)種子函數(shù)。

  時(shí)隔這么多年,姚夏沒有想到居然還會(huì)有用手寫代碼的時(shí)候。

  要知道從當(dāng)年做完華為和鵝廠的筆試題之后,姚夏就沒有這么干過了。

  沒有開發(fā)工具,手寫代碼真的很麻煩。

  姚夏用了兩頁信紙,詳細(xì)描述了梅森旋轉(zhuǎn)隨機(jī)數(shù)生成算法。

  為什么選擇梅森旋轉(zhuǎn),主要是基于幾個(gè)方面的原因。

  首先,現(xiàn)在是1986年,距離1999年的Intel在其 i810芯片組上集成了芯片級(jí)的隨機(jī)數(shù)生成器,從而使得新的服務(wù)器都自帶熱噪聲的本地源隨機(jī)數(shù)生成能力——真正的隨機(jī)數(shù)生成器這一偉大的發(fā)明還有13年的時(shí)間。

  在這段時(shí)間當(dāng)中,如果程序猿想要實(shí)現(xiàn)比較【隨機(jī)】的【隨機(jī)數(shù)】基本上就是通過不斷的優(yōu)化算法來進(jìn)行實(shí)現(xiàn)的。

  隨機(jī)數(shù)對(duì)于整個(gè)計(jì)算機(jī)歷史都有著非常重要的意義,因?yàn)榇蠹叶贾烙?jì)算機(jī)的本質(zhì)是二進(jìn)制,0101,這樣產(chǎn)生的數(shù)字幾乎不存在隨機(jī)性,也就是缺少了【擲骰子】的過程,但是隨著計(jì)算機(jī)的不斷發(fā)展,人們對(duì)于隨機(jī)的要求也越來越高。

  且不說游戲當(dāng)中需要讓AI來進(jìn)行一定的隨機(jī)行為,讓玩家產(chǎn)生新鮮感,哪怕是正常的統(tǒng)計(jì)學(xué)當(dāng)中,還有在各種通過計(jì)算機(jī)模擬的實(shí)驗(yàn)當(dāng)中,都需要用到隨機(jī)。

  隨機(jī)數(shù)對(duì)于未來的信息加密、統(tǒng)計(jì)和游戲領(lǐng)域都有著舉足輕重的作用。

  梅森旋轉(zhuǎn)是在1997年的時(shí)候,由松本真和西村拓士發(fā)明的。它完美地平衡了性能和隨機(jī)數(shù)的質(zhì)量,并且經(jīng)受住了時(shí)間的考驗(yàn)。

  姚夏直接用這個(gè)算法,可以引起清大教授的重視,從而能獲得直接去清大進(jìn)修的機(jī)會(huì)。

  第二個(gè),這個(gè)算法雖然是1997年發(fā)明的,可本質(zhì)上用現(xiàn)有的計(jì)算機(jī)性能就能支持,同時(shí)姚夏采用的C語言是現(xiàn)在比較主流的面向?qū)ο笳Z言之一。

  一切都符合這個(gè)時(shí)代的特征。

  好多經(jīng)典的算法都已經(jīng)被前人給用過了,比如說非常有名的FFT算法,快速傅里葉變換,1965年的時(shí)候就已經(jīng)被人給提出來。

  不然姚夏肯定會(huì)優(yōu)先寫這個(gè)。

  傅里葉的名字對(duì)于許多小伙伴們來說絕對(duì)不陌生,而且不管哪個(gè)領(lǐng)域,只要你學(xué)習(xí)跟數(shù)學(xué)、物理、計(jì)算機(jī)……理工科相關(guān),就一定會(huì)為這個(gè)名字頭疼不已。

  啊……

  姚夏想到傅里葉變換,不由得感嘆一聲,它是多么美啊。

  當(dāng)然,姚夏寫的這個(gè)梅森旋轉(zhuǎn)也沒有好到哪里去,大家肯定都聽說過【梅森素?cái)?shù)】,之所以這個(gè)算法的名字要叫做梅森旋轉(zhuǎn),本身跟梅森沒有多少關(guān)系,而是因?yàn)樗难h(huán)節(jié)是2^19937-1,這個(gè)叫做梅森素?cái)?shù)。

  其他的還有什么迪杰斯特拉算法,RSA非對(duì)稱加密算法,哈希安全算法……都不如梅森旋轉(zhuǎn)更適合。

  第三,相比起其他的可以【適當(dāng)】表現(xiàn)自己水準(zhǔn)的程序來說,姚夏寫這個(gè)感覺更容易一些,全部寫完加起來也不過百多行的代碼量。

  姚夏也是思考了很久才確定下來要在信紙當(dāng)中寫梅森旋轉(zhuǎn)的。

  ……

  別看代碼量不大,但是姚夏寫了差不多有20分鐘左右。

  終于寫完,姚夏再仔細(xì)檢查了一遍,確認(rèn)沒有什么問題,包括注釋也很詳細(xì)和完美,這才松了口氣笑了起來。

  打完收工。

  姚夏回過頭來禮貌地將鋼筆遞還給周思文。

  “謝謝叔叔?!?p>  “不用不用?!?p>  周思文將鋼筆接過來,別到自己的上衣口袋里面,張了張嘴,很想問姚夏一些問題,可話到嘴邊才發(fā)現(xiàn)并不知道該從何問起,關(guān)鍵是他根本看不懂姚夏在寫些什么。

  姚夏迅速地將信紙折疊好,放進(jìn)信封當(dāng)中。

  “小同志,我剛才不是故意要看你的寫的信的哈,就是匆匆瞥了一眼,”旁邊的大叔湊過來,饒有興趣地問到,“我看你寫的英文也不完全是英文,數(shù)字也不全是數(shù)字,這寫的是什么呀,別人能看懂嗎?

  我沒得別的意思,就是有些好奇?!?p>  “哦,沒得事,”姚夏倒是滿不在乎,隨口回應(yīng)到,“就是一段代碼,不是給普通人看的?!?p>  嘖嘖。

  不是給普通人看的。

  周思文沉默了,兩只眼睛忽閃忽閃的,欲言又止。

  “計(jì)算機(jī)你知道嗎?”姚夏問到。

  “計(jì)算器?”

  “不,不是計(jì)算器,是……嗯……微機(jī),微型計(jì)算機(jī),或者叫做電腦?!?p>  看著對(duì)方一臉茫然的樣子,姚夏在心里面嘆了口氣,放棄了解釋。

  “算了,叔叔,我解釋了你可能也不懂。”

  周思文確實(shí)不懂,聽得一頭霧水。

  現(xiàn)在的計(jì)算機(jī)還不叫做計(jì)算機(jī),國內(nèi)更多的叫法叫做微機(jī),不過在安南縣這種連電視機(jī)都沒有的地方,更別說見過微機(jī)的了。

  姚夏本來已經(jīng)準(zhǔn)備好的飯粒用來粘信封的,可到了郵電局才發(fā)現(xiàn),寄信窗口的外面放著一大瓶漿糊,漿糊當(dāng)中還有一個(gè)像冰棍棒子一樣的小木片。

  他涂了點(diǎn)漿糊,把信封封口,然后在信封上寫下地址和方曉霞的名字交給工作人員。

  “喲,寄帝都的啊?”窗口的大姐看了一眼。

  “對(duì)。”姚夏點(diǎn)點(diǎn)頭。

  “要加急不?”工作人員說,“加急8分,不加急4分錢?!?p>  “加急吧。”姚夏說。

  他還挺急的。

  再不急就得回去砍樹了。

  工作人員給貼上郵票,然后對(duì)姚夏說,“可以了,我們會(huì)幫忙統(tǒng)一寄出去的,加急信的話,應(yīng)該3天時(shí)間就到了?!?p>  “好的,謝謝了?!?p>  姚夏邁著歡快的步伐,轉(zhuǎn)瞬就出了郵電局的大門。

  周思文看著姚夏離開的背影,兩只眼睛閃閃發(fā)亮,口中念叨著,“微機(jī),微機(jī)……”

  過了兩秒,他才如夢(mèng)初醒般抬起頭來。

  “哎呀?!?p>  周思文一拍大腿,“忘記問他的名字和住處了。”

  ……

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南