1. 程式人生 > >rand()函式產生的隨機數為什麼是偽隨機數?

rand()函式產生的隨機數為什麼是偽隨機數?

     偽隨機數生成器將作為“種子”的數當作初始整數傳給函式。這粒種子會使這個球(生成偽隨機數)一直滾下去。偽隨機數生成器的結果僅僅是不可預測。由偽隨機數生成器返回的每一個值完全由它返回的前一個值所決定(最終,該種子決定了一切)。如果知道用於計算任何一個值的那個整數,那麼就可以算出從這個生成器返回的下一個值。結果,偽隨機數生成器是一個生成完全可預料的數列(稱為流)的確定性程式。
    計算機產生的隨機數一般都只是一個週期很長的數列,不是真的隨機數。也就是說,隨機數一般是偽隨機數,每個隨機數都是由隨機種子開始的一個已定的數列(週期很長)。一般地,為了隨機數更真一點,隨機種子在系統中通常是參照系統時鐘生成的。