初學c c rand,有趣的隨機數

2021-07-16 10:03:17 字數 943 閱讀 3765

有時候,我們需要一些隨機數,比如抽籤,隨機抽取數字之類的,

rand函式的格式很簡單,

for (int i=0 ; i<10 ; i++ );

每次rand()的返回值都不一樣,

但是注意!這是偽隨機數,因為,它沒有真正起到程式執行每次隨機,每次不同的效果。

s == seed

為了解決rand函式的缺陷,我們需要為rand設定乙個種子(seed),

隨機數是根據一定的規則生成的,給srand乙個引數後,它會產生不同的結果,預設為1.

例: srand(10);

for(int i = 0 ; i < 10 ; i++)

當srand的引數不同時,你會發現,隨機數也每次都會變化,

但是,我們不可能每次都修改**,來達到隨機的效果,

引入time函式,屬於<time.h>

例: srand(time(null));

for(int i = 0 ; i < 10 ; i++)

只需要執行一次就可以了,不需要每次都來修改引數,而且每次都不一樣。

1)取區間數:

由於rand結果之間,分隔比較大,所以還要對輸出結果進行操作,

比如,

要取乙個100~160之間的數:

int a = rand()%60 + 100 ;

printf(「%d \n 」 , a);

這樣,就能輸出我們想要的數了。

2)取double小數:

例: double a = (double)rand()/rand_max;

printf(」 %.2f \n 」 , a );

rand_max,是乙個整形數字,表示rand()函式產生的隨機數的區間上限,下限是0(照用就好了。。)

Python初學隨機數

隨機函式 import rander rander.seed 10 設定隨機數種子為10 隨機數種子會影響隨機數生成的序列 如果隨機數種子不變 則每次生成的隨機數種子都會一樣 如果不設定隨機數種子 則預設隨機數種子為系統時間 rander.rander 生成乙個 0.0,1.0 之間的隨機小數 ra...

隨機數 偽隨機數

隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...

隨機數生成 偽隨機數和真隨機數

c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...