D.P에서 나왔던 몬티홀 법칙 

첫 번째 선택을 안 바꾸고 당첨될 확률과

꽝을 본 후 선택 바꿨을 때 당첨될 확률을 봤는데..

숫자를 점점 늘리니깐 바꿨을 때가 더 높게 나오더라고요 ㅋㅋ

<?php

function montyhall($user){
   $nochange_count = 0;
   $change_count = 0;
   $door = [1,2,3];
   
	

   for($i=0; $i < $user; $i++){
      $car = rand(1,3);
      $user_choice = rand(1,3);
	// 유저가 선택을 바꾸지 않았을때 당첨 count
      if($car == $user_choice){
         $nochange_count +=1;
    }
   
      $monty_door, $second_choice;

	// 사회자가 꽝의 문을 골라줌
      foreach($door as  $val){
         if($val != $car && $val != $user_choice){
            $monty_door = $val;
         }
      }
      $monty_open = $monty_door;
	
	// 사회자가 열어준 문도 아닌, 유저가 처음에 선택한 문도 아님 -> 선택을 바꿨을 경우
      foreach($door as $val2){
         if($val2 != $monty_open && $val2 != $user_choice){
            $second_choice = $val2;
         }
      }
	
	// 유저가 선택을 바꿨을때 당첨 count
      if($car == $second_choice){
         $change_count += 1;
      }

   }
   
   echo $change_count."<br>";
   echo $nochange_count."<br>";

   echo "바꿨을때 : " .$change_count/$user."<br>";
   echo "변경 안했을때 : " .$nochange_count/$user."<br>";
}


montyhall(100);

?>

 

 

+ Recent posts