生成有足夠隨機性的隨機數

2021-08-21 05:47:53 字數 368 閱讀 3304

大致思路是使用足夠的運算和網路傳輸產生隨機性

1、迴圈若干次,做一組運算 因為即使同一臺計算機 每次執行的時間也不會相同,求運算消耗的時間 因此產生了初步的隨機性

2、重複步驟1 若干次 將得到的值乘上乙個較大的數字 如10000 作為運算的迴圈次數 進一步放大隨機性

3、多次重複步驟2 得到一些隨機數,將步驟2得到的結果作為種子 隨機出運算變數、運算子、迴圈次數,將運算結果和消耗時間相乘並迭代隨機次數 得到 若干結果

4、連線類似於國家授時中心的位址獲取乙個時間記錄後再次獲取乙個時間 可以獲取乙個基於網路狀況的隨機數

5、思路與2、3類似 進一步放大隨機性

6、將步驟3和5產生的結果做運算 產生的結果可以做種子也可以直接做為結果

足夠隨機的隨機數應用舉例

在.net framework中提供了乙個專門用來產生隨機數的類system.random,使用這個類時必須匯入system命名空間。當然,命名空間system在每個asp.net頁面中都是自動匯入的,所以我們可以直接使用這個類。對於隨機數,大家都知道,計算機不可能產生完全隨機的數字,所謂的隨機數發...

隨機生成隨機數

現畫乙個command命令按鈕,進行貼上。private sub command1 click show me scale 0,0 18,8 me.auto redraw true me.draw mode 2 circle 3,4 3,vb red me.auto redraw false lin...

隨機數生成 偽隨機數和真隨機數

c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...