C++關於隨機數的用法,srand,rand

一般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;
}

在這裏插入圖片描述

發佈了15 篇原創文章 · 獲贊 18 · 訪問量 8233
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章