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?