抛硬币c++循环

Coin Flip C++ Loop

本文关键字:循环 c++ 硬币      更新时间:2023-10-16

我正在尝试用c++制作一个硬币投掷器。它的重点是让硬币"抛"100次,并显示正面或反面的次数。

例如:"硬币已经被抛了100次。正面= 68反面= 32

下面是目前为止的代码:
#include <iostream>
#include <random>
int main()
{
    using namespace std;
    random_device rd;
    default_random_engine random(rd());
    uniform_int_distribution<int> uniform_dist(1, 2);
    int coin;
    int heads = 0;
    int tails = 0;
    coin = uniform_dist(random);
    cout << "I will flip this coin 100 times.";
    cout << "I will then print the results.";
    while (coin != 100)

我怎样才能把硬币"抛"100次,我怎样才能为硬币制造一个循环?

不需要循环。您需要的是从二项分布中抽取的随机数:

std::binomial_distribution<int> distribution(100,0.5);
int heads = distribution(random);
int tails = 100 - heads;

详情请参阅http://www.cplusplus.com/reference/random/binomial_distribution/和http://en.wikipedia.org/wiki/Binomial_distribution

我不知道为什么循环对你来说很难,但这应该可以工作。

for ( int count = 0; count != 100; ++count )
{
   int coin = uniform_dist(random);
   if ( coin == 1 )
   {
      ++heads;
   }
   else
   {
      ++tails;
   }
}