C C 隨機數生成

2021-09-19 14:39:02 字數 859 閱讀 8538

在c/c++中一般使用rand()函式隨機生成某些數字:

rand函式界限:stdlib.h標頭檔案中有巨集#define rand_max 0x7fff

rand產生乙個0-0x7fff的隨機數,即最大是32767的乙個數

rand()無引數,返回乙個從0到32767的任意整數

**需要生成 a-b之間的隨機數:   

rand()%(b-a+1)+a   //表示a-b之間隨機產生的乙個整數
如果要產生0-99這100個整數中的乙個隨機整數,可以用 

int num=rand()%100
如果要產生1-100這100個整數中乙個隨機整數,可以用 

int num=rand%100+1
如果要產生1.8-3.5之間乙個隨機浮點數,可以採用如下方法:

float a=rand()%18+18;

float b=a/10;

注:1. rand()函式每次呼叫前都會查詢是否呼叫過srand(seed),是否給seed設定了乙個值,如果有那麼它會自動呼叫srand(seed)一次來初始化它的起始值;

2. 若之前沒有呼叫srand(seed),那麼系統會自動給seed賦初始值,即srand(1)自動呼叫它一次

手動設定種子點:

#include #include #include int main()

//列印生成的隨機數

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

printf ("\n");

return 0;

}

C C 生成隨機數

01 include 02 include 03 04intmain intargc,char argv 05 10return0 11 01 02上述方法產生隨機數每次不同,但每次執行時產生的順序是相同的。原因是每次的種子都相同,所以會產生相同的隨機數列。一般使用時間作為種子保證每次的種子都不同。...

c c 生成隨機數

計算機的隨機數都是由偽隨機數,即是由小m多項式序列生成的,其中產生每個小序列都有乙個初始值,即隨機種子。注意 小m多項式序列的週期是65535,即每次利用乙個隨機種子生成的隨機數的週期是65535,當你取得65535個隨機數後它們又重複出現了。我們知道rand 函式可以用來產生隨機數,但是這不是真正...

C C 隨機數生成方法

1.rand 功能 隨機數發生器 用法 int rand void 所在標頭檔案 stdlib.h rand 的內部實現是用線性同餘法做的,它不是真的隨機數,因其週期特別長,故在一定的範圍裡可看成是隨機的。rand 返回一隨機數值的範圍在 0 至 rand max 間。rand max 的範圍最少是...