C語言中的隨機數的問題

時間 2021-09-10 18:21:29

1樓:

rand()函式產生隨機數的原理···不清楚。但是他是一個#include

裡的函式。

他的範圍是0-rand_max....這個值不小於32767(這是ansi標準規定的)

提到這個,順便幫樓主提一下。這個是偽隨機數。

也就是一旦你執行過後,你每次得到的那組隨機數肯定是一樣的。。

這也就是偽所在。他的單次是隨機(單次不是指單個,是指你單次編譯,也就是你下次再執行這個程式,結果是一樣的,沒有真正隨機)

一般用於取範圍內隨機數。

rand()%a;

比如取100以內的隨機數

rand()%100;

或者骰子的時候取6

rand()%6.模擬每次得到的點數··

還有發牌。多用於賭博模擬中。

這時就引進另一個srand();

有了這個。才能儲存rand()每次真正的隨機效能。

一般這個的用法,現在用得比較多的是用電腦的時間 做值也就是srand(time(null);

然後後面你得到的rand()每次執行結果就不一樣了。

這個要加個標頭檔案#include

要還 不清楚就hi我

2樓:隔壁的蟲子

rand(void)用於產生一個偽隨機unsigned int 整數。

srand(seed)用於給rand()函式設定種子。

srand 和 rand 應該組和使用。一般來說,srand 是對 rand 進行設定。

比如:srand((uint)getcurrenttime());

int x = rand() % 100;

是生成 0 到 100 之間的隨機數。

srand()是用來初始化隨機種子數的,因為rand的內部實現是用線性同餘法做的,他不是真的隨機數,只不過是因為其週期特別長,所以有一定的範圍裡可看成是隨機的,式子如下:

rand = rand*const_1 + c_var;

srand函式就是給它的第一個rand值。

用"int x = rand() % 100;"來生成 0 到 100 之間的隨機數這種方法是不或取的,

比較好的做法是: j=(int)(n*rand()/(rand_max+1.0)) 產生一個0到n之間的隨機數

e.g.

#include

#include

#include

using namespace std;

void main( void )

3樓:蜜長青

rand的隨機數是有規律的你觀察下就知道了

數值是0~1

4樓:

函式rand()產生偽隨機序列,每次他被呼叫的時候都返回一個0到rand_max之間的整數。rand_max的值至少是32767.

至於原理你可以檢視該函式的原型,據我所知,rand()函式其實只是生成了一個很長的數列,而不是真正意義上的隨機數。

函式srand()為rand()生成的偽隨機序列設定起點,一般用於多道程式執行時通過制定不同的起點而使用不同的偽隨機序列(比較常見的可以呼叫時間)。相反,也可以使用srand()反覆產生同一隨機數序列,方法很簡單就是用相同引數呼叫srand().

c語言中取隨機數的函式,C語言中取隨機數的函式

韌勁 1.基本函式 在c語言中取隨機數所需要的函式是 int rand void void srand unsigned int n rand 函式和srand 函式被宣告在標頭檔案stdlib.h中,所以要使用這兩個函式必須包含該標頭檔案 include 2.使用方法 rand 函式返回0到ran...

c語言中如何生成0到1的隨機數,c語言中如何生成1個0到1的隨機數

八哥說科技 c語言中生成1個0到1的隨機數可以執行語句 float b rand rand max 1.0 解析 標準c庫中函式rand 可以生成0 rand max之間的一個隨機數,其中rand max 是stdlib.h 中定義的一個整數,它與系統有關。rand 函式沒有輸入引數,直接通過表示式...

C關於隨機數抽取問題,C 怎麼獲取隨機數

public string randomnum int n int t rand.next 61 if temp 1 temp t temp t vnum vcarray t return vnum 返回生成的隨機數 c 怎麼取隨機數? 使用random類中的next 方法。例如,生成一個100以內...