C/C++ 随机数生成器的 随机化
为何要随机化?
因为rand函数实际上生成的并不是正在的随机数,而是伪随机数。(具体表现在 重复调用rand会生成看似随机的数字序列,但然而程序每次执行的时产生的序列都是重复的。)
怎么样实现真的随机化?
可以通过使用c++标准库函数srand来实现。
怎么样来使用srand函数? —使用srand的种子(seed),实际可以把seed理解成一个触发器,程序里可以把种子seed/触发器 写成无符号整数。
有两个办法:
1.手动输入seed(无符号数)。
2.使用time函数。
#include "pch.h"
#include <cstdlib>
#include <iostream>
#include <ctime>
#include<iomanip>
using namespace std;
int main()
{
unsigned seed;
cin >> seed;
srand(seed);// 核心在这此
for (int count=1;count <=10;count++) {
cout << setw( 10 ) << (1 + rand() % 6);
if (count % 5 == 0)
{
cout << endl;
}
}
std::cout << "Hello World!\n";
return 0;
}
方法二:使用time函数。
#include "pch.h"
#include <cstdlib>
#include <iostream>
#include <ctime>
#include<iomanip>
using namespace std;
int main()
{
unsigned seed;
cin >> seed;
srand(seed);// 核心在这此
for (int count=1;count <=10;count++) {
cout << setw( 10 ) << (1 + rand() % 6);
if (count % 5 == 0)
{
cout << endl;
}
}
std::cout << "Hello World!\n";
return 0;
}
time函数介绍,使用此函数必须加入头文件。
此函数返回的是从格林尼治时间1970年1月1日0点到此刻的秒数,这个值被转换成无符号类型的整数,并用作随机数生成器的种子。
更多推荐
C/C++ 随机数生成器的 随机化
发布评论