隨機檔案與隨機函式

2021-05-22 10:19:44 字數 1373 閱讀 9861

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...

隨機試驗與隨機事件

隨機試驗與樣本空間 如果乙個試驗能夠事先明確的知道所有可能的基本結果,在每一次觀察中,不能準確的語言 哪一種結果會發生,並且在相同的條件下可以重複的進行,稱此試驗為隨機試驗。隨機試驗的每一種結果稱為乙個樣本點 全體結果構成的集合稱為樣本空間,通常記為 樣本空間中具有某種屬性的樣本點的集合稱為乙個隨機...