C語言隨機數使用方法

2022-05-18 21:49:25 字數 1423 閱讀 8375

隨機數在程式設計中還是有所應用,最近從網上學習到這方面一點知識,想把它寫下來。

一、使用隨機數所需要的標頭檔案和函式:

標頭檔案:cstdlib(c++ 的 standard libraray)    ctime

函式:    rand()       srand(int seed);   time(null);

二、隨機數的的理解:

隨機數不是真的隨機數,它是通過公式(有很多)計算出來的。它就像函式一樣——srand(seed)中的seed好比自變數x,而rand()則是seed對應的因變數的值。

換句話來說,如果seed值固定,那麼產生的隨機數也不變。 **如下:

**如下:

#include #include 

#include

using

namespace

std;

intmain()

return0;

}

執行n次結果

41 18467 6334 26500 19169

--------------------------------

process exited after 0.576 seconds with return value 0

請按任意鍵繼續. . .

如何產生更像「隨機數」的隨機數呢,這時候time(null)就排上用場。time(null)會返回自 unix 紀元(january 1 1970 00:00:00 gmt)起的當前時間的秒數,因為時間在變,所以由rand()產生的隨機數就不固定了。

**如下:

#include #include 

#include

using

namespace

std;

intmain()

return0;

}

執行第一次結果:

12114 22257 23578 61 16877

--------------------------------

process exited after 0.5004 seconds with return value 0

請按任意鍵繼續. . .

執行第二次結果:

12212 17030 2447 1064 31402

--------------------------------

process exited after 0.4893 seconds with return value 0

請按任意鍵繼續. . .

(可以看到,每次的結果不同)

三、隨機數的使用公式

rand() % 隨機數的範圍的長度 + 隨機數範圍的最小值

舉例:如果我要產生10 — 15 的隨機數,公式為 rand() % (15 - 10 + 1) + 10。

隨機數 C語言

怎樣獲得某一範圍的隨機整數?直接使用這種方法 rand n 試圖返回從0到n 1的整數 不好,因為許多隨機數生成器的低位並不隨機。乙個較好的方法是 int double rand double rand max 1 n 兩種方法都需要知道rand max,而且假設n要遠遠小於rand max。如果n...

C語言隨機數

在c語言函式庫中包含了乙個產生隨機數的函式 int rand void 函式返回的是乙個界於0 32767之間的偽隨機數,包括0和32767。注意,這裡產生的是偽隨機數,不是真正意義上的隨機數,看下面的程式 include stdlib.h include stdio.h void main 執行結...

c語言隨機數

隨機值函式rand 首先需要包含標頭檔案 include 計算機的優點是準確,並不擅長隨機和模擬,所以使用的rand 函式並不是真正意義上的隨機,而是一種偽隨機數使用rand 生成隨機數之前需要用隨機發生器的初始化函式srand unsigned seed 也位於stdlib.h 中 進行隨機數序列...