Rzut Kostką

0

Mam problem z zadaniem z książki z działu o losowości:

Napisz program symulujący rzut monetą. Uruchom go wiele razy. Czy uzyskane wyniki wyglądają Twoim zdaniem na losowe?

Napisałem tyle czy pomógł by mi ktoś aby to działało, w miarę prostym językiem.

#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

int liczba;

int zakresRand (int minimum, int maksimum)
{
    //Dostajemy liczbę losową od 0 do górnej granicy naszego
    // zakresu, po czym dodajemy najniższą możliwą wartość
    return rand() % (maksimum - minimum + 1 ) + minimum;

}

int main()
{
    srand( time( NULL ) );
    cout <<  zakresRand( 1, 2) << '\n';
    cin >> liczba;


    switch (liczba)
    {
        case 1:
        cout << "Wyrzuciłeś Reszke";
        case 2:
        cout << "Wyrzuciłeś Orzełka"
        
    }
}

3

Czemu wypisujesz wynik losowania i wczytujesz co wylosować?

#include <ctime>
#include <cstdlib>
#include <iostream>

using namespace std;

int liczba;

int zakresRand (int minimum, int maksimum)
{
    //Dostajemy liczbę losową od 0 do górnej granicy naszego
    // zakresu, po czym dodajemy najniższą możliwą wartość
    return rand() % (maksimum - minimum + 1 ) + minimum;

}

int main()
{
    srand( time( NULL ) );
    liczba =  zakresRand( 1, 2);

    switch (liczba)
    {
        case 1:
        cout << "Wyrzuciłeś Reszke";
        break;
        case 2:
        cout << "Wyrzuciłeś Orzełka";
        break;
        default: cout << "wylosowano" << liczba;

    }
}
1

Jeśli Twoja funkcja zwraca co ma zwracać, to symulacja pojedynczego rzutu monetą, to zakresRand(0, 1) to włąśnie wynik pojedynczego rzutu monetą. Poczytaj też ten wątek:
https://stackoverflow.com/questions/288739/generate-random-numbers-uniformly-over-an-entire-range

2
Czarri napisał(a):

Mam problem z zadaniem z książki z działu o losowości:

Napisz program symulujący rzut monetą. Uruchom go wiele razy. Czy uzyskane wyniki wyglądają Twoim zdaniem na losowe?

Napisałem tyle czy pomógł by mi ktoś aby to działało, w miarę prostym językiem.

#include <ctime>
#include <cstdlib>
#include <iostream>

int zakresRand (int minimum, int maksimum)
{
    //Dostajemy liczbę losową od 0 do górnej granicy naszego
    // zakresu, po czym dodajemy najniższą możliwą wartość
    return rand() % (maksimum - minimum + 1 ) + minimum;

}

Wiesz co, ktoś już to napisał i dodał do biblioteki standardowej : )

std::random_device rd; 
std::mt19937 gen(rd());
std::uniform_int_distribution<> distrib(min_val, max_val);
// ciach ...
auto rand_val = distrib(gen);

https://en.cppreference.com/w/cpp/numeric/random/uniform_int_distribution

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