背景
这是一个真实的使用场景(2020.9.4)。
新生集训营中每半天都要2位学生写一篇感想。其中有5位同学在之前一天已主动报名写好了读后感。于是应该编写一个程序来为剩下的同学排序,选出幸运的同学来完成这个任务。
随机数
随机数有几种,一种是使用时间函数定出的随机数,程序示例见 【C++ 程序】 井字棋游戏(人 VS Lv1电脑)中Line 59-60。
另外,可以用直接电脑自带的随机数函数来生成随机数:
示例程序
#include <iostream>
#include <random>
using namespace std;
int main()
{
vector<unsigned> vec, vint;
unsigned alr = 0, iter = 0;
default_random_engine random;
for (int i = 0; i != 1000; i++)
{
unsigned ran = random() % 31 + 1;
vec.push_back(ran);
}
cout << "Let's choose the lucky dogs." << endl;
for (unsigned iter = 0; iter != 1000; iter++)
{
if (vec[iter] != 5 && vec[iter] != 11 && vec[iter] != 12 && vec[iter] != 22 && vec[iter] != 26)
{
unsigned id = 0;
for (unsigned i = 0; i != iter; i++)
{
if (vec[i] == vec[iter])
id = 1;
}
if (id == 0)
{
vint.push_back(vec[iter]);
++alr;
}
}
if (alr == 20) break;
}
for (unsigned j = 0; j != 20; j++)
{
if (j % 4 == 0) cout << "\nSept." << j / 4 + 4 << ": ";
if (j % 4 == 2) cout << "| ";
if (vint[j] < 10)cout << "0";
cout << vint[j] << " ";
}
cout << endl;
return 0;
}
样例输出
分析
这个程序每次输出是一样的,因为这其实是个随机数表。
此处没有用uniform_int_distribution<unsigned> u(max, min)
,因为似乎直接用%
也挺方便的。
ALL RIGHTS RESERVED © 2020 Teddy van Jerry
欢迎转载,转载请注明出处。
See also
Teddy van Jerry 的导航页
【C++ 程序】 井字棋游戏(人 VS 人)
【C++ 程序】 井字棋游戏(人 VS Lv1电脑)
【C++ 程序】 井字棋游戏(人 VS Lv2电脑)
【C++ 程序】 井字棋游戏(人 VS Lv3电脑)
【C++ 程序】 井字棋游戏(人 VS Lv3电脑)(战绩统计版)
【C++ 程序】 五子棋游戏(人 VS 人)
【C++ 程序】 移动迷宫游戏
【C++ 程序】 贪吃蛇游戏
【C++ 程序】 数字推盘游戏(15-puzzle)
【C++ 程序】 2048游戏