Coin Flip Predictor
by skibulk
JavaScript
var trials = 100000;
var guesses = 0;
var wins = 0;
var log = [0,0,0,0,0,1,1,1,1];
var call;
for (var i=0; i<trials; i++){
// Should average 4.5
var trend = log.reduce((a, b) => a + b);
// guess the opposite of the trend
if(trend <= 3) {
call = 1;
guesses++;
} else if(trend >= 6) {
call = 0;
guesses++;
} else {
call = -1
}
var flip = crypto.getRandomValues(new Uint32Array(1))[0]/2**32;
flip = Math.round(flip);
log.shift();
log.push(flip);
if (call == flip) {
wins++;
}
}
console.log(guesses, Math.round((wins/guesses)*100)/100);