• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z resetowaniem się licznika

Aruba Cloud - Virtual Private Server VPS
0 głosów
114 wizyt
pytanie zadane 19 listopada 2023 w C i C++ przez Kamil bachan Nowicjusz (120 p.)

Cześć!
Mam problem z resetowaniem licznika przy liczbie 15.

W poniższym kodzie chciałem napisać symulator rzutu monetą, lecz napotkałem problem. Przy serii 15 x lub y licznik zawsze się resetuje. W wyniku za każdym razem otrzymuję: 15 15

#include <iostream>
#include <ctime>

int main()
{
    srand(time(NULL));

    int n = 10000000;

    int x = 0;
    int y = 0;
    int bX = 0;
    int bY = 0;

    for(int i = 0; i < n; i++){

        int num = rand() % 2 + 1;

        if(num == 1){
            x++;
            if(x > bX){
                bX = x;
            }
            y = 0;
        }
        else{
            y++;
            if(y > bY){
                bY = y;                
            }
            x = 0;
        }
    }
    std::cout << bX << " " << bY << std::endl;
    return 0;
}

 

W drugim kodzie licznik działa prawidłowo.

 

#include <iostream>
#include <ctime>

int main()
{
    srand(time(NULL));

    int n = 10000000;

    int x = 0;
    int y = 0;
    int bX = 0;
    int bY = 0;

    for(int i = 0; i < n; i++){

        int num = rand() % 10 + 1;

        if(num <= 5){
            x++;
            if(x > bX){
                bX = x;
            }
            y = 0;
        }
        else{
            y++;
            if(y > bY){
                bY = y;                
            }
            x = 0;
        }
    }
    std::cout << bX << " " << bY << std::endl;
    return 0;
}

Dlaczego pierwszy kod nie działa?

komentarz 19 listopada 2023 przez overcq Pasjonat (22,440 p.)

Widocznie znalazłeś powtarzalność bitów tego prostego generatora liczb pseudo‐losowych.

U mnie wychodzą dla obu kodów wartości pomiędzy ok. 19 a 28.

komentarz 19 listopada 2023 przez Kamil bachan Nowicjusz (120 p.)
Dzięki

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 460 wizyt
pytanie zadane 31 października 2018 w Grafika i multimedia przez Slegnawierzchowcu Użytkownik (860 p.)
0 głosów
1 odpowiedź 178 wizyt
0 głosów
1 odpowiedź 188 wizyt
pytanie zadane 20 sierpnia 2020 w C i C++ przez th3r4t3l Nowicjusz (120 p.)

93,323 zapytań

142,322 odpowiedzi

322,389 komentarzy

62,652 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...