Интересно
November 20, 2021
Парадокс Монти Холла
Как-то гуляя по статьям на википедии я наткнулся на одну интересную статью - Парадокс Монти Холла. Это задача теории вероятностей, решение которой, на первый взгляд, противоречит здравому смыслу.
Хотя я отлично понял доказательство этой теории, но было интересно проверить распределение результатов на практике. Простенький скрипт на PHP, который показывает результаты под катом.
function get_krol($mod)
{
// Три пустые двери
$arr=array(0,0,0,);
// Кладем кролика за одну из них.
$i=rand(0,2);
$arr[$i]=1;
// Делаем первый выбор
$i=rand(0,2);
// Убираем 1 дверь без кролика
$y=0;
while($y<3)
{
if($i!=$y)
{
$arr_tmp[]=$arr[$y];
}
$y++;
}
// Смотрим какую именно дверь убрать
if($arr_tmp[0]==0 and $arr_tmp[1]==0)
{
$arr_final[1]=0;
}
if($arr_tmp[0]==1 OR $arr_tmp[1]==1)
{
$arr_final[1]=1;
}
// Первоначальное решение
$arr_final[0]=$arr[$i];
// Не меняет решение
if($mod==0)
{
if($arr_final[0]==1){return 1;}
if($arr_final[0]==0){return 0;}
}
//Меняет решение
if($mod==1)
{
if($arr_final[1]==1){return 1;}
if($arr_final[1]==0){return 0;}
}
}
// Не меняем решение
$u=0;
while($u<100000)
{
$total=$total+get_krol(0);
$u++;
}
$total = ($total / 100000) *100;
echo "Не меняя $total%
";
// Меняем решение
$u=0;
$total=0;
while($u<100000)
{
$total=$total+get_krol(1);
$u++;
}
$total = ($total / 100000) *100;
echo "Меняя: $total%";
November 20, 2021, 08:12
0 views
0 reactions
0 replies
0 reposts