標準函式庫定義了一組隨機數引擎類別和適配器,使用不同數學方法產生偽隨機數。標準庫還定義了一組分佈模板,根據不同的機率產生隨機數。引擎和分佈類型的名字都與它們的數學性質是相對應的。
但我們今天就接觸一點點最基礎的知識。
電腦沒有辦法產生真正的隨機數的,是用演算法模擬,所以你只呼叫rand,每次出來的東西都是一樣的。設定一個種子後,根據種子的不同,就可以產生不同的數了。而怎麼保證種子的不同呢?最簡單的辦法當然是用永遠在前進的時間。
srand(time(0)) ;//先设置种子 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()); }
輸出結果:
22614 15772 30620 24913 7556 31659 27876 27229 25083 16564
相關推薦:《C影片教學》
以上是srand(time(0))函數是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!