作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我应该用 C++ 创建一个抛硬币模拟游戏。我有这个代码;然而,我在所有 20 次抛掷中得到相同的输出,这意味着我要么在所有 20 次抛掷中得到正面,要么在所有 20 次抛掷中得到反面。我从来没有得到任何应有的变化。我觉得除了那一部分之外,我所有的事情都做对了。有人能指出我正确的方向吗?
代码:
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
using namespace std;
class Coin
{
public:
Coin()
{
toss();
}
void toss()
{
unsigned seed = time(0);
srand(seed);
int num = (rand()%(2));
if (num == 0)
{
sideUp = ("Heads");
}
else
{
sideUp = ("Tails");
}
}
string getSideUp()
{
return sideUp;
}
private:
string sideUp;
};
int main()
{
int totHeads = 0, totTails = 0;
Coin flip;
cout<<"Flip #1: "<<flip.getSideUp()<<endl;
if (flip.getSideUp() == ("Heads"))
{
totHeads += 1;
}
else
{
totTails += 1;
}
for (int x = 2; x <= 20; x++)
{
flip.toss();
cout<<"Flip #"<<x<<": "<<flip.getSideUp()<<endl;
if (flip.getSideUp() == ("Heads"))
{
totHeads += 1;
}
else
{
totTails += 1;
}
}
cout<<"The total amount of heads were: "<<totHeads<<endl;
cout<<"The total amount of tails were: "<<totTails<<endl;
return 0;
}
最佳答案
您的 toss
函数会不断重新播种 PRNG。不要。
在程序开始时调用srand
一次。
关于C++ 抛硬币模拟器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27218980/
我是一名优秀的程序员,十分优秀!