1. /dev/random 與/dev/urandom 特殊檔案
有些系統會提供兩種隨機偽裝置
:/dev/random
與/dev/urandom。
這兩個裝置的差別,在
/dev/random
會一直封鎖,直到系統所產生的隨機數已充分夠用,所以它可以確保高品質的隨機數。相對地,
/dev/urandom
不會死鎖,其資料的隨機程度也不高。 讀取
1kb的隨機碼元組
[root@local~]#
time dd count=1 bs=1024 if=/dev/random>/dev/null
0+1 records in
0+1 records out
o.ooou 0.020s 0:04.62 0.4% 0+0k 0+0io 86pf+0w 讀取
1mb的隨機碼元組
[root@local~]#
time dd count=1024 bs=1024 if=/dev/urandom>/dev/null
1024+0 records in
2048+0 records out
0.000u 0 0.660s 0:0 0.66 100% 0+0k 0+0io 86pf+ow
/dev/random
被讀取的越多,它的響應越慢。我們用這兩個裝置在幾個系統上實驗,發現要自
/dev/random
提取l0mb
的資料,竟耗掉一天或一天以上。而
/dev/urandom
在我們最快的系統上執行,三秒鐘即可產生相同的資料。
這兩個偽裝置都可以取代
mktemp
,成為產生難以推側的臨時性檔名的替代方案:
[root@local~]#
tmpfile=/tmp/secret.$(cat /dev/urandom | od –x | tr –d 』 』| head -n 1)
[root@local~]#
echo $ tmpfile #
顯示隨機檔名
/tmp/secret .00000003024d462705664c043c04410e570492e
此處,我們從
/dev/urandom
讀取二進位制位元組資料流,以
od將其轉換為十六進製制,使用
tr去掉空格,之後在滿一行時停止。因為
od將每個輸出行轉換為
16'位元組,因而提供了
16 x 8=128
個隨機位。
2. 使用隨機檔案或隨機函式產生隨機數
隨機函式 randbetween隨機函式不簡單
在excel中,我們知道randbetween函式可以產生隨機整數,然而,應用巧妙的話,還可以獲取隨機日期 隨機姓名等。下面來看看吧 randbetween函式 1.作用 返回乙個介於指定的數字之間的隨機整數。2.語法 randbetween bottom,top bottom引數 將返回的最小整數...
QT qrand 隨機函式不隨機?
在做乙個qt的課程設計時,需要乙個產生隨機數 四位不同數字的隨機數 的方法,查了一下資料發現很簡單呼叫一下qrand 方法即可。確實也能產生隨機數但是發現乙個bug就是每次重啟程式發現每次產生的隨機數都是相同的。如下 獲取隨機數 int mainwindow generaterandomnumber...
隨機試驗與隨機事件
隨機試驗與樣本空間 如果乙個試驗能夠事先明確的知道所有可能的基本結果,在每一次觀察中,不能準確的語言 哪一種結果會發生,並且在相同的條件下可以重複的進行,稱此試驗為隨機試驗。隨機試驗的每一種結果稱為乙個樣本點 全體結果構成的集合稱為樣本空間,通常記為 樣本空間中具有某種屬性的樣本點的集合稱為乙個隨機...