- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的教授要求我们编写一个程序:
使用循环模拟一对骰子的滚动一千次(这里我认为 for 循环会很有用)。
对于每次迭代,循环需要计算每个值从 2 到 12 的次数(这里我认为 if/else 语句适用)
当循环结束时,必须显示每个值(从 2 到 12)出现的次数。
他的作业结构如下:
他希望我们使用一个进入 1000 次 for 循环的函数,每次函数调用调用另一个函数两次(以模拟掷出两个骰子)。
让我解释一下我设法放下的东西
//
// main.cpp
// RollingDice
#include <iostream>
#include <ctime>
using namespace std;
int roll();
int rollDice();
int main(int argc, const char * argv[])
{
for (int i = 1; i < 1000; i++)
{
rollDice(); //This is the function that is supposed to call the roll();
//function two times. This makes sense to me that TWO DICE
//are being rolled 1000 times.
}
int result; //These two statements was where I was just hoping for something
//to work. I put these variable statements outside of the for
//loop because I was thinking that the int rollDice(); function
//definition(below) wouldn't know how to use it otherwise. I
//know that doesn't make sense, but I just can't explain why.
result = rollDice();
}
int roll()
{ //This function was provided to us by my professor.
static bool randomInitialized = false;
int points;
if (!randomInitialized)
{
srand((unsigned int) time(NULL));
randomInitialized = true;
}
points = (rand() % 6) + 1;
return points;
}
int rollDice()
{ //This I wrote myself. I'm imagining this is how you call a function twice.
//The return statement in this function was my attempt of returning the sum
//of the values of the two dice.
roll();
roll();
return result;
}
除了程序的这一部分不工作之外,我还有另一个问题是确定一种方法来为每个出现的值设置一个计数器(但是,我想象程序的那部分属于 for 循环。那是关于我所知道的一切。)。从昨天开始,我就对这个节目进行了深入的思考。我今天又回来了,希望有一个新的想法能解决它,但我仍在挣扎。非常感谢任何帮助。
最佳答案
表达式 roll()
的计算结果为一个数字。要添加数字,我们使用 +
。要返回一个值,我们使用 return
。
将它们放在一起,我们得到一个简单的函数来对两个卷求和
int rollDice() { return roll() + roll(); }
如果你有一个数字序列,并且数字都靠得很近并且从 0 开始,标准库的 SequenceContainer 之一s 是整个序列的合适持有人。
这里的东西是特定 throw 的计数。我们预先确切知道可用值(包括 2 - 12),因此 std::array
是合适的。任何至少可以容纳 1000 的整数值都适用于计数。我在这里选择 std::size_t
。
#include <array>
#include <iostream>
int main()
{
std::array<std::size_t, 13> counts {};
这会给我们 13 个 0,从位置 0 开始
for (std::size_t i = 0; i < 1000; ++i)
{
++counts[rollDice()];
我们用 rollDice 选择哪个数字,并用它来选择要递增的计数
}
for (std::size_t i = 2; i < 13; ++i)
{
我们现在可以遍历我们的结果,显示计数
std::cout << "The count for " << i << " is " << counts[i] << std::endl;
}
}
关于c++ - 掷 2 个骰子 1000 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51256820/
用 n 个骰子求滚动总和概率的最佳解决方案是什么?我正在通过查找来解决它 平均。 标准偏差。 x 以下数字的 z_score> x 上面数字的 z_score 将两者都转换为概率 从另一个中减去一个
我的教授要求我们编写一个程序: 使用循环模拟一对骰子的滚动一千次(这里我认为 for 循环会很有用)。 对于每次迭代,循环需要计算每个值从 2 到 12 的次数(这里我认为 if/else 语句适用)
我一周前才开始使用 python,现在我被掷骰子的问题困住了。这是我 friend 昨天发给我的问题,我自己也不知道怎么解决。 Imagine you are playing a board game
从头开始,用 2 个骰子重复第 4 部分。这次我们使用 10,000 而不是 1000。 每个骰子的数字可以为 1 - 6,因此 2 个骰子的总数必须在 2 - 12 的范围内。 您的输出将在 2 –
我想计算 n 个骰子的所有眼睛的总和与 s 面(编号从 1 到 s) 等于 t。我的语言是 Python 3。 我目前的方法几乎是一种尝试计数的解决方案,只适用于小数字(运行 probability(
我是一名优秀的程序员,十分优秀!