【C++ 程序】 随机数

背景

这是一个真实的使用场景(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;
}

样例输出

Output

分析

这个程序每次输出是一样的,因为这其实是个随机数表
此处没有用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游戏

猜你喜欢

转载自blog.csdn.net/weixin_50012998/article/details/108399493
今日推荐