我想用php做出一个蒙提霍尔问题请问逻辑怎么写

这是java版的逻辑

import java.util.Random;  
  
  
public class MengTeHuoEr {  
  
    public static void main(String[] args) {  
          
        boolean[] a = new boolean[3];//三个门  
        Random random = new Random();  
        int N = 10000;  
        int count = 0;  
          
        for(int i = 0; i < N; i++){//循环做N次测试  
              
            for(int j = 0; j < 3; j++)  
                a[j] = false;  
            int indexOfCar = random.nextInt(3);//随机生成汽车位置  
            a[indexOfCar] = true;  
              
            int indexOfChoose = random.nextInt(3);//随机选择一个门  
              
            int indexOfOpen;//主持人打开的门  
            for(indexOfOpen = 0; indexOfOpen < 3; indexOfOpen++){  
                if(indexOfOpen != indexOfCar && indexOfOpen != indexOfChoose)  
                    break;  
            }  
            int indexOfChange;//待交换的门  
            for(indexOfChange = 0; indexOfChange < 3; indexOfChange++){  
                if(indexOfChange != indexOfOpen && indexOfChange != indexOfChoose)  
                    break;  
            }  
            indexOfChoose = indexOfChange;  
            if(a[indexOfChoose] == true)  
                count++;  
        }  
        System.out.println(count*1.0/N);  
          
    }  
  
}  

详情可以百度查看

阅读 1.7k
1 个回答
$a = array(false, false, false);
        $N = 10000;
        $count = 0;
        for ($i = 0; $i < $N; $i++) {
            for ($j = 0; $j < 3; $j++) {
                $a[$j] = false;
            }
            $indexOfCar = rand(0, 2); //随机生成汽车位置
            $a[$indexOfCar] = true;
            $indexOfChoose = rand(0, 2); //随机选择一个门  
            $indexOfOpen = 0;
            for ($indexOfOpen = 0; $indexOfOpen < 3; $indexOfOpen++) {
                if ($indexOfOpen != $indexOfCar && $indexOfOpen != $indexOfChoose) {
                    break;
                }
            }
            $indexOfChange = 0; //待交换的门  
            for ($indexOfChange = 0; $indexOfChange < 3; $indexOfChange++) {
                if ($indexOfChange != $indexOfOpen && $indexOfChange != $indexOfChoose)
                    break;
            }
            $indexOfChoose = $indexOfChange;
            if ($a[$indexOfChoose] == true) {
                $count++;
            }
        }
        echo $count * 1.0 / $N;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题