Untitled fiddle
HTML
<pre id="log"></pre>
JavaScript
function my_print(msg) {
document.getElementById("log").innerHTML += msg;
}
number_of_tests = 1000;
trials_per_test = 5;
const tosses = new Int8Array(number_of_tests * trials_per_test);
self.crypto.getRandomValues(tosses);
counts = new Int32Array(trials_per_test+1);
for (current_test = 0; current_test < number_of_tests; current_test++) {
heads_counter = 0;
for (current_trial = 0; current_trial < trials_per_test; current_trial++) {
is_head = tosses[current_test * trials_per_test + current_trial] > 0;
if (is_head) {
heads_counter++;
}
}
counts[heads_counter]++;
}
my_print(`Number of tests: ${number_of_tests}\n`);
for (number_of_heads = 0; number_of_heads <= trials_per_test; number_of_heads++) {
c = counts[number_of_heads];
cp = (c / number_of_tests * 100).toFixed(2);
my_print(`${number_of_heads}/${trials_per_test} - ${c}, ${cp}%\n`)
}