偽隨機數小項目
猜數字游戲 //C語言 猜數字游戲
https://blog.csdn.net/csdn_kou/article/details/79785709
C語言之隨機數生成超詳解
https://blog.csdn.net/csdn_kou/article/details/79788815
在上面的文章中,使用固定函數就一直是生成固定的隨機結果,但是引入時間seed就可以達到我們的要求。
上面兩個生成隨機數的方法都是通過一個seed來獲取,他是達到了我們需求的隨機數,但是他并不完全是真正的隨機數。在某種特定場景下,是可以復現這個隨機數。或者說我們生成的隨機數是有規律可循的,只是他的規律周期比較長。
真隨機數
使用物理現象產生的隨機數才是真隨機數。比如擲錢幣、骰子、轉輪、使用電子元件的噪音、核裂變等等。
- http://random.org/ 從1998年開始就在Internet上提供真隨機數服務了,
它用大氣噪音生成真隨機數 - Linux中的文件可以看到黃色的設備文件cd /dev && ls
它利用機器的噪音生成隨機數,噪音源包括各種硬件運行時速,用戶和計算機交互時速。比如擊鍵的間隔時間、鼠標移動速度、特定中斷的時間間隔和塊IO請求的響應時間等。 - 2011年,加拿大渥太華的物理學家Ben Sussman利用激光脈沖和鉆石創造了真隨機數。
Sussman的實驗室使用持續幾萬億分之一秒的激光脈沖照射鉆石,激光進入和出來的方向發生了變化。 - 2012年4月,https://phys.org/news/2012-04-fastest-random-silence.html
從真空中的亞原子噪音獲取隨機數 研究小組開發了可以通過激光監聽真空中隨機噪音的工具并以此產生真正的隨機數。