lundi 21 mars 2016

Roulette Wheel - Counting Even/Odd Streak w/o an Array

I'm having a bit of trouble with a part of my code. We're supposed to have a random generator inside a loop that generates 1,000,000 random numbers. Afterwards, we have to have a counter that counts the longest streak of evens and odds, and compare it to 1/37 * (n-1) (# of expected repeats) and (1/37)^2 * (n-1) (# of expected threepeats). We haven't learned arrays, so he expects us to complete the assignment without arrays. It seems to be generating streaks correctly, however, my numbers are consistently high when you look closer (ex. I generate a streak of 29 when the expected streak per formula is 19). If the generator is truly random, it should be closer to the expected number. I've provided my code below:

for(int i = 1; i <= 1000000; i++) {
        int randomNumber = gen.nextInt(37);
        wheel.setNumber(randomNumber);
        String numberColor = wheel.getColor();

//COUNTS THE LONGEST STRING OF EVENS
        if ((lastNum % 2 == 0) && (randomNumber % 2 == 0) && randomNumber != 0 && lastNum != 0) {
            tempEven++;
            tempOdd = 1;
        } else { 
            if (tempEven > longestEven) {
                longestEven = tempEven;
                tempEven = 1;
            }
        }

//COUNTS THE LONGEST STRING OF ODDS
        if ((lastNum % 2 == 1) && (randomNumber % 2 == 1) && randomNumber != 0 && lastNum != 0) {
            tempOdd++;
            tempEven = 1;
        } else {
            if (tempOdd > longestOdd) {
                longestOdd = tempOdd;
                tempOdd = 1;
            }
        }
}

If someone could check my code and make sure my logic is correct, I'd really appreciate it.

Aucun commentaire:

Enregistrer un commentaire