Probability
by denvdmj
HTML
<p>Соундараджан рассказал, что его натолкнула на мысль о проверках «случайности» в мире простых чисел лекция японского математика Токиэда Тадаси [Tadashi Tokieda]. В ней тот приводил пример из теории вероятностей. Если Алиса будет кидать монетки до тех пор, пока не получит решку, следующую за орлом, а Боб – до тех пор, пока не получит две решки подряд, то Алисе в среднем потребуется четыре броска монеты, в то время как Бобу – шесть. При этом вероятность выпадения орлов и решек одинакова.</p>
<output></output>
<tpl>
Алисе потребовалось в среднем {alice} бросков
Бобу потребовалось в среднем {bob} бросков
</tpl>
CSS
body {
margin: 2em auto;
width: 32em;
font: 14px/1.37 Verdana, sans-serif;
}
output {
white-space: pre-wrap;
color: #070;
}
tpl {
display: none;
}
JavaScript
function test (_, who) {
// side: 0 - орел для Алисы, 1 - решка для Боба
var side = { alice: 0, bob: 1 } [ who ];
var a, b, n = 0, i;
for (i = 0; i < 1000; i++) {
a = Math.round(Math.random());
b = Math.round(Math.random());
n += 2;
while (a != side || b != 1) {
a = b;
b = Math.round(Math.random());
n++;
}
}
return '≈ ' + Math.round(n / i) + ' (' + (n / i) + ')';
}
document.querySelector('output').textContent =
document.querySelector('tpl').textContent
.replace(/{(alice|bob)}/g, test);