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);