c語言:隨機數rand()
阿新 • • 發佈:2019-02-14
計算機沒有辦法產生真正的隨機數的,是用演算法模擬,所以你只調用rand,每次出來的東西是一樣的。設定一個種子後,根據種子的不同,就可以產生不同的數了。而怎麼保證種子的不同呢?最簡單的辦法當然是用永遠在向前的時間。
srand(time(0)) ;//先設定種子
rand();//然後產生隨機數
Srand是種下隨機種子數,你每回種下的種子不一樣,用Rand得到的隨機數就不一樣。為了每回種下一個不一樣的種子,所以就選用Time(0),Time(0)是得到當前時時間值(因為每時每刻時間是不一樣的了)。 srand(time(0)) ; 就是給這個演算法一個啟動種子,也就是演算法的隨機種子數,有這個數以後才可以產生隨機數,
用1970.1.1至今的秒數,初始化隨機數種子。
rand();//然後產生隨機數
Srand是種下隨機種子數,你每回種下的種子不一樣,用Rand得到的隨機數就不一樣。為了每回種下一個不一樣的種子,所以就選用Time(0),Time(0)是得到當前時時間值(因為每時每刻時間是不一樣的了)。 srand(time(0)) ; 就是給這個演算法一個啟動種子,也就是演算法的隨機種子數,有這個數以後才可以產生隨機數,
用1970.1.1至今的秒數,初始化隨機數種子。
參考案例
#include <stdlib.h> #include <stdio.h> #include <time.h> void main( void ) { int i; srand(time(0)); /* 輸出 10 個隨機數. */ for( i = 0; i < 10;i++ ) { printf( "%6d/n", rand() ); } }