隨機數在程式設計中還是有所應用,最近從網上學習到這方面一點知識,想把它寫下來。
一、使用隨機數所需要的標頭檔案和函式:
標頭檔案: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 中 進行隨機數序列...