Keno Loto simulation
by egon
HTML
<div id="log">
</div>
JavaScript
logdiv = document.getElementById("log");
function log(msg){
logdiv.innerHTML += "<p>" + msg + "</p>";
}
function PickNumbers(count, total){
var i, set = [],
result = [];
for(i=total; i--;)
set.push(i);
for(i=count; i--;){
var picked = (Math.random() * set.length) | 0;
result.push(set[picked]);
set.splice(picked,1);
}
return result.sort();
};
function Matches(mine, set){
var matches = 0;
for(var i = mine.length; i--;)
for(var j = set.length; j--;)
if( mine[i] == set[j] )
matches += 1;
return matches
}
function Simulate(bank, pay, turns){
for(var i=turns; i--;){
bank -= pay;
mine = [0,1];
keno = PickNumbers(20,64);
if( Matches(mine, keno) >= 2)
bank += pay*5;
if(bank <= 0)
break;
}
return bank;
}
function Multiple(bank, pay, turns, simulations){
var i, results = [];
for(i=simulations; i--; )
results.push( Simulate(bank, pay, turns) );
var avg = 0, netpositive = 0;
for(i=results.length; i--;){
if (results[i] > bank)
netpositive += 1;
avg += results[i];
}
log(avg/results.length);
log(netpositive + "/" + simulations);
}
Multiple(100, 5, 20, 1000)