當前位置:編程學習大全網 - 編程語言 - 我想知道各種產生隨機數的算法循環周期壹次是多長。謝謝大家。

我想知道各種產生隨機數的算法循環周期壹次是多長。謝謝大家。

盡管是偽隨機數,但也是沒有規律的,唯壹的規律是n=無窮的情況下,近似服從正態分布。

電腦所產生的隨機數規律與程序編程算法有關,可以根據算法讓隨機數有規律,也可以是無規律,如何找規律都要取決於算法和隨機數範圍數據,壹個比較大較難的隨機數是無任何規律的。

稱為是隨機數,所以也不存在循環問題,而是在壹定數據範圍內數字隨機出現,而不是按排序出現。按排序出現的不能稱為隨機數。

選取足夠大的正整數M和任意自然數n0,a,b,由遞推公式:

ni+1=(af(ni)+b)mod M i=0,1,…,M-1

生成的數值序列稱為是同余序列。當函數f(n)為線性函數時,即得到線性同余序列:

ni+1=(a*ni+b)mod M i=0,1,…,M-1

以下是線性同余法生成偽隨機數的偽代碼:

Random(n,m,seed,a,b)

{

r0 = seed;

for (i = 1;i<=n;i++)

ri = (a*ri-1 + b) mod m

}

其中種子參數seed可以任意選擇,常常將它設為計算機當前的日期或者時間;m是壹個較大數,可以把它取為2w,w是計算機的字長;a可以是0.01w和0.99w之間的任何整數。

應用遞推公式產生均勻分布隨機數時,式中參數n0,a,b,M的選取十分重要。

擴展資料:

隨機數在密碼學中非常重要,保密通信中大量運用的會話密鑰的生成即需要真隨機數的參與。如果壹個隨機數生成算法是有缺陷的,那麽會話密鑰可以直接被推算出來。若果真發生這種事故,那麽任何加密算法都失去了意義。

密碼學中大量利用偽隨機數生成器的應用還有流密碼。流密碼的著名例子是RC4。流密碼的原理是利用壹個密碼學安全的偽隨機數生成器根據密鑰產生壹串密碼學安全的偽隨機比特列,再將消息與上述隨機比特列按位異或運算。

百度百科-隨機數

  • 上一篇:全國計算機二級考試的形式內容,要做什麽準備?
  • 下一篇:哪本書是學習VBA最好的圖書
  • copyright 2024編程學習大全網