為什麼crand函式產生的隨機數有相同的規律

2021-03-04 06:42:26 字數 919 閱讀 6884

1樓:匿名使用者

rand本質上產生的是偽隨機數,不是真正意義上的隨機數。已知常見的幾種產生偽隨機數的演算法都是通過簡單的迭代遞推而產生,種子是決定性因素,乙個相同種子產生的後續每乙個偽隨機數是可以乙個個推算出來的。這也就是為什麼使用rand函式之前一定要先用srand給乙個比較隨機一些的種子先初始化,一般用系統時間,因為程式執行的當前時刻是很難發生撞車的。

而沒有正確的使用srand的程式,或者說每次都使用相同種子rand產生的偽隨機數序列將完全相同。

2樓:匿名使用者

要事先設定乙個偽隨機數種子(srand函式),種子相同,產生的隨機數序列就相同,一般以當前時間為隨機數種子,因為時間是一去不復返的,每時每刻時間都在變化,就可以保證每時每刻產生的隨機數序列不同。

3樓:黑暗中的劍

偽隨機數,通過乙個演算法獲得

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

4樓:匿名使用者

計算機的執行過程是乙個

確定的過程,每一條指令都是確定,因此從根本上來講,計算機產生不了真正意義上的隨機數。

那麼偽隨機數怎麼理解呢?舉個最簡單的例子,要隨機產生0~9十個數,那麼計算機可以迴圈快速的給出0、1、2、3、4、5、6、7、8、9、0、1……這樣的乙個數列,這個數列並不是隨機的,而是有規律的(所以才叫做偽隨機),當我們按下按鈕,或者點下滑鼠的瞬間,機器停止,並顯示最後的乙個數字(有點類似於玩***),這個過程我們挑選出來的數字好像是隨機的,但其實並不是100%隨機,只有我們去觸發機器的那個時間點是隨機的,其他都是有規律的,所以就是偽隨機。

rand()函式就是給出一列數值(這列數值是被事先打亂,但是是固定的數值),所以屬於偽隨機數。只是機器執行到rand()函式的時間點是隨機的,才讓我們感覺執行結果是隨機的一樣。

利用隨機函式Rnd產生n個隨機兩位數

rnd函式。返回乙個包含隨機數值的。single。語法。rnd number 可選的。number 引數是。single 或任何有效的數值表示式。返回值。如果。number 的值是。rnd 生成。小於。每次都使用。number 作為隨機數種子得到的相同結果。大於。序列中的下乙個隨機數。等於。最近生成...

編寫乙個隨機產生10到100的整數的函式

include include include void main 希望對你有所幫助。c語言如何srand和rand函式產生10個1 100內的隨機數 需要準備的材料分別有 電腦 c語言。編譯器。1 首先,開啟c語言編譯器,新建乙個初回始。cpp檔案,例如答 2 在檔案中,輸入c語言 for int...

隨機變數分布函式和密度函式關係的物理意義是什麼?要的是物理意

隨機變數分布函式的導數就是密度函式了,望採納 能量分布函式的物理意義是什麼論壇 能量為e的乙個量子態被電子所佔據的平均機率。量子力學中能量特徵函式有何物理意義 特徵長度 英文 characteristic length 是屬於分形幾何的概念。對於某個物體,特徵長度通常是指該物體長度中有代表意義的長度...