Blukkie
Legacy Member
Een goede avond allemaal,
ik zit met een klein probleempje.
Ik heb de volgende simpele applicatie gemaakt, waarbij een denkbeeldige munt wordt gegooid. Wanneer de munt op munt valt, gaat er -1 van het huidige getal af. Bij kop is dat dus +1.
Maar wanneer ik de applicatie run, is er altijd een reeks van of +1 of -1. Nooit eens om en om. Hij kan dus van 0 naar 1000 gaan en dan van 1000 helemaal naar 0 zonder dat er ook maar eens +1 komt.
Hij ziet er als het volgt uit:
Weet iemand de oorzaak en/of een mogelijke "fix"?
Ik denk dat het door rand(time) komt, maar ik weet zo snel niet een oplossing hier op.
Alvast bedankt.
ik zit met een klein probleempje.
Ik heb de volgende simpele applicatie gemaakt, waarbij een denkbeeldige munt wordt gegooid. Wanneer de munt op munt valt, gaat er -1 van het huidige getal af. Bij kop is dat dus +1.
Maar wanneer ik de applicatie run, is er altijd een reeks van of +1 of -1. Nooit eens om en om. Hij kan dus van 0 naar 1000 gaan en dan van 1000 helemaal naar 0 zonder dat er ook maar eens +1 komt.
Hij ziet er als het volgt uit:
Code:
//BACK TO ZERO
// "Toss" a coin.
//
// Tails -1
// Heads +1
//
// 0, 1, 2, 1, 0 for example
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
int number = 0;
int tries = 0;
bool goToss = true;
while(goToss)
{
srand(time(0));
int randomNumber = rand();
int side = (randomNumber % 2) + 1;
switch(side)
{
case 1: // tails
number--;
break;
case 2: // heads
number++;
break;
default:
break;
}
tries++;
cout << "on try " << tries << " the number is: " << number << endl;
if(number == 0)
{
goToss = false;
}
}
if(!goToss)
{
cout << "The coin flipped a total of " << tries << " times to reach 0 again." << endl;
system("PAUSE");
}
};
Weet iemand de oorzaak en/of een mogelijke "fix"?
Ik denk dat het door rand(time) komt, maar ik weet zo snel niet een oplossing hier op.
Alvast bedankt.

