如何模拟不同边数的骰子滚动?
How do a simulate a dice roll with different number of sides?
以下代码获取用户提供的骰子边数,然后调用函数返回掷骰子的随机结果。但是,我不知道如何生成 1 和提供的数字之间的随机数。
#include <iostream>
using namespace std;
int main() {
int numberOfSides = 0;
do
{
cout << "How many sides do you want the die to have? ";
cin >> numberOfSides;
if (numberOfSides <= 0)
{
cout << "Error: Please enter a positive integer!" << endl << endl;
}
} while (numberOfSides <= 0);
int result = rollDie(numberOfSides);
cout << "You rolled a " << result << endl;
}
int rollDie(int numberOfSides)
{
// Complete this function
}
随机数泛型在C++参考中作为示例进行了描述。
请看这里。
在那里您还可以找到描述。我用引用的代码完成了你的函数。
请看:
#include <iostream>
#include <random>
int rollDie(int numberOfSides)
{
std::random_device rd; //Will be used to obtain a seed for the random number engine
std::mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
std::uniform_int_distribution<> dis(1, numberOfSides);
return dis(gen);
}
int main() {
int numberOfSides = 0;
do
{
std::cout << "How many sides do you want the die to have? ";
std::cin >> numberOfSides;
if (numberOfSides <= 0)
{
std::cout << "Error: Please enter a positive integer!nn";
}
} while (numberOfSides <= 0);
int result = rollDie(numberOfSides);
std::cout << "You rolled a " << result << "n";
}
相关文章:
- 如何使用Google Mock来模拟gettimeofday()
- 使用一个考虑到std::map中键值的滚动或换行的键
- G锁定铸造到基础上会释放模拟行为
- 函数何时会在c++中包含stack_Unwind_Resume调用
- 有什么好的方法可以让系统调用代理允许在单元测试中进行模拟
- Python中的for循环与C++有何不同
- 落砂模拟碰撞检测C++和SFML
- 在gtest.中使用fff.h模拟系统API
- QScrollArea:由垂直滚动条引起的水平滚动条
- 跟踪滚动条上的鼠标事件
- 谷歌模拟和覆盖关键字
- 用C#中的并集模拟C++嵌套结构
- 在同一模拟中使用静脉和静脉_ inet内容时出现运行时错误
- 在模拟器中使用并集来模拟CPU寄存器有多合适
- 我写了一个C++程序来模拟Enigma机器.我没有得到输出
- 如何在不使用滚动条的情况下使视图更改
- 如何模拟不同边数的骰子滚动?
- 模拟 QScrollArea Qt5 的滚动
- 模拟两个骰子的滚动并保存在矢量中
- 如何模拟当前打开窗口的鼠标滚动