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