JSFiddle - React, Tailwind, and code Playground
by dru_zod
JavaScript
var randomBetween = function(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min)) + min;
};
var randomDigit = function() {
return randomBetween(0, 10);
};
var buyAndOpen = function(number, has, buys) {
if (!buys)
return has;
var r = randomBetween(0, number);
//console.log({ has: has, buy: buys, r: r });
if (r < has) {
return buyAndOpen(number, has, buys - 1);
}
return buyAndOpen(number, has + 1, buys - 1);
};
var run = function(n) {
var number = 20;
var has = 3;
var buys = 3;
var gotDuplicates = 0;
for (var i = 0; i < n; i += 1) {
var after = buyAndOpen(number, has, buys);
if (after < 6) {
gotDuplicates += 1;
}
}
return (gotDuplicates / n);
};
console.log(1 - run(10000000));