c++ - 如何生成无限随机数的一对骰子直到它们相等?

标签 c++ loops random-seed

我正在尝试模拟一个程序,该程序将掷一对骰子并生成结果,直到变量相等,但我无法弄清楚。

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;

int main() { 
    const int MIN_VALUE = 1;
    const int MAX_VALUE = 6;

    int die1,die2;

    unsigned seed = time(0);
    srand(seed);

    die1 = (rand()%(MAX_VALUE - MIN_VALUE +1)) + MIN_VALUE;
    die2 = (rand()%(MAX_VALUE - MIN_VALUE +1)) + MIN_VALUE;

    while(die1 == die2); {
        die1 = (rand()%(MAX_VALUE - MIN_VALUE +1)) + MIN_VALUE;
        die2 = (rand()%(MAX_VALUE - MIN_VALUE +1)) + MIN_VALUE;

        cout<<"Value of die 1  is"<<die1<<endl;
        cout<<"Value of die 2 is" <<die2<<endl;
        cout<<endl;
    }
    return 0;
}

最佳答案

这里有几个问题:

  • ; 位于 while 语句开始处的行末意味着 while 没有连接到 block 下面的代码。去掉它。 (如果 die1 值本身在开始时等于 die2,那么您本身就会有一个无限循环。)

  • 要检查的条件是 die1 != die2,因为只要不相等,您就想掷骰子。

参见 Demo .

关于c++ - 如何生成无限随机数的一对骰子直到它们相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55370379/

相关文章:

c++ - 应用科学计算工作的面试测试

c++ - std::function 和由 "using"推导的函数类型不具有相同类型

c++ - 将 2 个项目插入 vector 中

python - 如何在Python中使用random.seed创建多个不同的初始伪随机数?

python - 在同一程序中播种 random 和 numpy.random 的最佳实践

c++ - 如何让我用 C++ 编写的图形程序使用 GPU 而不是 CPU 进行渲染?

python - 使用 lxml 将一个 xml 复制到 python 中的另一个

r - 根据 R 中另一列的值使用二进制变量填充新列

c - 带循环的结构成员值赋值

c++ - 如何播种 randn 函数 opencv