計算機真隨機數都應用在什麼地方

2021-03-19 18:20:29 字數 915 閱讀 9067

1樓:在晴天的雨傘

首先,「真隨機」也有不同的含義,若想要「真正的真隨機」目測只能靠量子力學了。一般的所謂真隨機不是指這個,而是指統計意義上的隨機,也就是具備不確定性,可以被安全的用於金融等領域,下面說的也是這種。

答案是,計算機系統可以產生統計意義上的真隨機數。

大部分程式和語言中的隨機數(比如 c 中的,matlab 中的),確實都只是偽隨機。是由可確定的函式(常用線性同餘),通過一個種子(常用時鐘),產生的偽隨機數。這意味著:

如果知道了種子,或者已經產生的隨機數,都可能獲得接下來隨機數序列的資訊(可**性)。

直觀來想,計算機是一種可確定,可**的的裝置,想通過一行一行的確定的**自身產生真隨機,顯然不可能。但是,我們或許可以迂迴一下……

實現方法簡單說就是軟硬結合,或者說,引入系統外的變數(把軟體,**,演算法想象成一個封閉的系統)。

一個典型的例子就是 unix 核心中的隨機數發生器(/dev/random),它在理論上能產生真隨機。即這個隨機數的生成,獨立於生成函式,這時我們說這個產生器是非確定的。

具體來講,unix 維護了一個熵池,不斷收集非確定性的裝置事件,即機器執行環境中產生的硬體噪音來作為種子。

比如說:時鐘,io 請求的響應時間,特定硬體中斷的時間間隔,鍵盤敲擊速度,滑鼠位置變化,甚至周圍的電磁波等等……直觀地說,你每按一次鍵盤,動一下滑鼠,鄰居家 wifi 訊號強度變化,磁碟寫入速度,等等訊號,都可能被用來生成隨機數。

更具體的,核心提供了向熵池填充資料的介面:

比如滑鼠的就是

void add_mouse_randomness(__u32 mouse_data)

核心子系統和驅動呼叫這個函式,把滑鼠的位置和中斷間隔時間作為噪音源填充進熵池。

所以,結論是,程式和演算法本身不能產生真隨機,但是計算機系統作為整體可以迂迴產生統計意義上的真隨機。

計算機應用基礎,《計算機應用基礎》教學中幾種教學方法的比較

1 資訊理論的創始人是 c a 布林 b 圖靈 c 馮.諾依曼 d 夏農 2 按馮.諾依曼的儲存程式和程式控制的理論,計算機硬體由 c 組成 a cpu 記憶體儲 i o裝置 硬碟和顯示器 b 微處理器 記憶體儲器 外儲存器 輸入裝置和輸出裝置 c 運算器 控制器 儲存器 輸入裝置和輸出裝置 d 運...

計算機應用都學習哪些課程?計算機應用學什麼內容

廣告平面設計 影視後期 新 電子商務等。計算機應用學什麼內容 計算機應用技術專業主要學什麼?計算機應用技術專業是高職院校開設的專業,主要學習計算機的基本原理,計算機程式語言,計算機常見軟體的操作等,主要側重於計算機的應用,也就是實際操作,程式語言學習相對少一些。計算機應用技術主要研究計算機系統管理 ...

在計算機程式中是否真的存在隨機,計算機程式可以產生真正的隨機數嗎?不是random偽隨機

所有的隨機都是偽隨機。所謂的隨機就是在一大堆的檔案中隨機拿一個進行使用 計算機程式可以產生真正的隨機數嗎?不是random偽隨機 光靠程式是無法實現真隨機數的。要實現真正的隨機數,必須有真正隨機的種子。我很好奇,計算機真的能產生隨機數嗎 30 計算機理論上可以產生統計意義上的真隨機數 首先,真隨機 ...