網站首頁 文學常識 簡歷 公文文書 文學名著 實用文 人生哲理 作文 熱點話題作文
當前位置:文萃咖 > 日記 > 日記作文

關於計算機自主隨機字符串的抽取

欄目: 日記作文 / 發佈於: / 人氣:8.09K

瞭解我的人,都知道,我是一個十分喜歡看電影的人,有的時候甚至一天看八部電影。但是這種到網頁查找電影,找到自己喜歡的電影讓後去看。這樣的過程我認為日子長了,未免太沒有意思。因此我有了一個新奇的想法:我將部分電影名全部放到計算機裏,讓計算機給我決定我應當看哪部電影。

這個想法非常的新奇,因為突出點在於,並不是由我決定我因該看什麼電影,而是由計算機決定。這增加了選擇電影名稱的有趣度,但也增加了是按這種情況的難度。

顯而易見,我的目的是讓計算機隨機抽取電影名,而不是為我推薦。這樣的話,有了目的,我們需要的`材料以及必備的元素就已經有了,在目的裏面説到關鍵詞“計算機”“隨機”“電影名”。不過好説的是,“電影名”這個東西並不難搞,百度一搜一大把,這是很好辦到的事情,因此這個最先解決(誰叫他最簡單)。讓後就是解決“計算機”“隨機”這兩個東西了。非常明顯的是,最簡單的我們一眼就可以看出“計算機”,這就是我們需要的材料之一,只要有了它,才能完成我們的這次目的。我們準備好計算機,就要考慮下一個元素“隨機”。

不得不説“隨機”,在我們人腦這裏是一種方法,我們十分明白,隨機就是從一堆東西中無規律的找出一個東西。然而,我們這種想法在計算機中也有一個獨特的名字稱號,他就是廣為人知的“算法”。在當今計算機社會,對於程序的編寫有了非常大的進步,我們這裏使用C++,因為我熟悉,我拿手,就是這麼任性。

我們要養成不應當重複造輪子的好喜歡,因此,我們的前輩已經幫我們解決了“隨機”這個問題,一個有趣的C++函數rand(),這既是我們要完成整個程序的重要函數,瞭解了這個函數就幫我們解決了問題。在這裏,我們先不討論這個函數裏面到底是怎麼運行的,要討論這東西可大有學問。

那麼我們就來寫一個十分簡單的程序:

#include

#include

#include

#include

using namespace std;

int main()

{

int a,b,c,d;//這裏我們假設有四部電影

int e;//這裏留着儲備隨即結果

e=rand(a,b,c,d);

cout 《 e;

return 0;

}

完成

既然我們的代碼寫完了,因為這是一個簡單的代碼,所以,可以找編譯器測試一下。

那麼也會會問,什麼叫做隨機,有隨機這個數嗎?

當然有,在大自然中,假設我們手中有一張硬紙,正面寫着1,反面寫着2,我們掏入空中,那麼到底是正面還是反面呢?我們不知道,但我們知道這只是概率的問題,因此,隨機這個名詞,是統計學的一個名詞。那麼人能否給出一個真隨機數呢?很抱歉,這是不可能的,因為人的大腦、心理決定了自身對於哪個數字的偏向。我們來思考極端一點的,假設你被別人盯上了,他在你的汽車中安置了一枚炸彈,連接着你的手機,你按了2這個按鈕,你的汽車爆炸了,嚇到了你,因此,你的潛意識會着重刻畫這個事件以及裏面的“2”。所以,人並不可能給一個隨機的數字,因此才會有了民主投票選舉法等等方式,人在力求公平。當然,人也可以間接的給出一個隨機數,比如本自然段的開頭。

那麼,計算機是否可以給出一個隨機數呢?抱歉,也是不現實的。那麼為什麼,眾所周知,計算機是一個邏輯機器,凡事都要依靠數學邏輯。因此我們動一動腳趾頭就可以想出來。那麼為什麼還要在上文中稱之為隨機?不是沒有隨機嗎?其實計算機關於隨機的問題,在計算機之父“馮·諾伊曼”就已經意識到這個問題,他意識到這個單靠數學邏輯運算的龐然大物,並不能直接產生隨機數,但他可以間接,比如我們上文説到的rand()函數,他是依靠數學公式遞歸出來的:Ni+1=(A* Ni + B)% M這是簡化後的公式。人們發現,計算機可以間接的通過公式、二項式等等產生出來,也可以藉助外部條件,比如無線的事實頻率、CPU的實時頻率、晶管分子震動次數等等,也可能夠隨時影響着計算機的隨機數。但這些方法產生的數字,並不是純粹的隨機數,因此我們計算機科學管它叫做“偽隨機數”。

熱門搜索