Certa vez, em uma ensolarada manhã de primavera, lendo um fórum da cidade, deparei-me com um link com um jogo simples de uma rede comercial conhecida. O jogo (ação) dedicado à Copa do Mundo foi um campo simples, três a três, cheio de bolas de futebol. Ao clicar na bola, abrimos uma imagem com um produto específico. Ao abrir três fotos idênticas, foi garantido ao participante o recebimento gratuito deste produto em uma das lojas da rede. Além disso, sob uma das bolas havia uma imagem de um cartão vermelho, cuja abertura significou o fim do jogo.

O interesse no jogo desapareceu rapidamente devido a casos extremamente raros de vitória. Jogando quatro de nós com 6 números de telefone em alguns dias (cerca de 15 jogos), ninguém poderia vencer. "E qual é a probabilidade de ganhar neste jogo?" Perguntei a mim mesma e puxei uma folha de papel, relembrando um curso de matemática superior enquanto eu era. Anotando as fórmulas, descobriu-se que cada jogo pode conter de 1 a 9 jogadas e cada jogada leva a um dos três estados - vitória, derrota ou continuação do jogo (com exceção das duas primeiras jogadas, que podem levar apenas a dois estados). Percebendo rapidamente que a fórmula para 9 campos é muito complicada, comecei com um simples - 4 campos (três produtos idênticos e um cartão vermelho). Um rápido esboço das fórmulas em um guardanapo, e a probabilidade de ganhar é de 1/4. Em 5 campos, tive que mexer, mas a probabilidade calculada também foi de 25%. Nesse momento, pensei três vezes e verifiquei duas vezes o cálculo. Isso mesmo. Para não dizer que fiquei muito surpreso, já que meus estudos na universidade estão acostumados ao fato de que na teoria da probabilidade os resultados mais inesperados são possíveis. O cálculo para 9 campos levaria várias folhas de papel e mais de uma hora, portanto, uma decisão mais simples foi tomada. Simule o jogo com um script. Algumas dezenas de minutos, uma xícara de café e o script está pronto. Utilizou o PowerShell, como uma ferramenta sempre à mão do administrador do sistema.
$fail = 0
$win = 0
for ($m=1; $m -lt 1001; $m++)
{
$mas = 1, 2, 3, 4, 5, 6, 7, 8, 9
$sum = 0
$result = ""
for ($i=0; $i -lt 8; $i++)
{
$j = Get-Random -Minimum $i -Maximum 9
if ($mas[$j] -eq 9)
{
$result = "FAIL"
break
}
if ($mas[$j] -eq 1 -or $mas[$j] -eq 2 -or $mas[$j] -eq 3) { $sum++ }
if ($sum -eq 3)
{
$result = "WIN"
break
}
$mas[$j] = 0
$mas = $mas | Sort-Object
}
$result
if ($result -eq "WIN") { $win++ }
if ($result -eq "FAIL") { $fail++ }
}
$fail
$win
1, 2 3, 9. , , , , .
, — 25% . , , , , .
. . 10. , .
.
1.3 , , .
! , , .
F12 Chrome, . , . , , , JSON. , “ ” . — , “ ”. , “” . .
JS , 1.5 , , « ». Google JS Beautifier, . , 40 000 . JSON , , — . JSON .

0, 1 2 — , 3 — , .
.

Outcome , JSON, , ! !

! ! , , , . . .
:
8. :
8.1. :
…
166000
, 664000 , , , .
( ).(, ). -. . ()