一般C++程序員可通過兩個步驟生成隨機數
1.設置隨機數種子
2.通過複雜的數學運算生成序列的下一個數
如果用第二種,雖然序列幾乎不可能預測,但他仍具有確定性(因爲它是由上一個數計算而來)。爲防止下一個數被預測,就必須設置種子,而且每次都不同;從哪裏獲取這樣一個數呢? 很簡單–系統時間
獲取隨機數
首先引入頭文件
include <cstdlib> //支持rand和srand函數
include <ctime> //支持系統時間
設置種子, 注;不管獲取多少次隨機數,都只設置一次隨機數
srand(time(nullptr)); //nullptr 即空指針(null point) 也可直接改爲NULL或者0
srand(time(0));
srand(time(NULL));
設置好隨機數後,就可以調用rand生成隨機數了
`cout<<rand()<<endl;//生成一個
cout<<rand()<<endl;//生成另一個`
如何設置範圍呢
一般應用取餘符號%將範圍控制在0~n-1之間一個數。所以要獲得0-n之間的隨機數只需要末尾加1
下面一個程序模擬生成1到6的隨機數
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{srand(time(nullptr));
for(int i=0;i<10;++i)
{cout<<(rand()%6)+1<<end;
}
return 0;
}