Program z funkcją losową w C++

0

Cześć!

Chciałbym stworzyć program z funkcją losową symulującą rzut monetą, która powinna za każdym razem wyświetlać wynik rzutu, oraz zatrzymać się gdy wypadną trzy razy z rzędu orły.
Napisałem program, który jednak nie działa tak jak powinien.

#include <iostream>
#include <cstdlib>

using namespace std;

int rzut_moneta(int n)
{
    int seed=n;
    srand(seed);
    return rand()%2;
}
int main()
{
    int licznik=1;
    do
    {
      if(rzut_moneta(licznik)==0)
        cout<<"Orzel"<<endl;
      else
        cout<<"Reszka"<<endl;
    licznik++;

    }while(rzut_moneta(licznik)==0 && rzut_moneta(licznik-1)==0 && rzut_moneta(licznik-2)==0);

    return 0;
}```



Zastanawiałem się nad użyciem biblioteki ctime, ale wtedy jak poukładać w kolejność wyniki rzutów?

Liczę na waszą pomoc.
Pozdrawiam.
1

Seeda ustawiasz raz,a nie za każdym razem! Poza tym: https://dsp.krzaq.cc/post/180/nie-uzywaj-rand-cxx-ma-random/

Jak chcesz to sobie dodaj 3 ostatnie elementy do wektora (albo dla zaawansowanych: boost circuler buffer) i sprawdzaj czy są identyczne.

2

Skąd taki głupi pomysł żeby przekazywać seed do tej metody losującej?
Pseudokod:

counter = 0;
while(counter < 3) {
   int coinThrow = rand() %2;
   print coinThrow 
   if(coinThrow == 0)  
      coutner++;
   else 
      counter = 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1