BNUOJ 44578 Monty Hall problem

2021-01-20 16:01:33 浏览数 (1)

蒙提霍尔问题,亦称为蒙特霍问题或三门问题(Monty Hall problem),是一个源自博弈论的数学游戏问题. 这个游戏的玩法是:参赛者会看见三扇关闭了的门,其中一扇的后面有一辆汽车,选中后面有车的那扇门就可以赢得该汽车,而另外两扇门后面则各藏有一只山羊。当参赛者选定了一扇门,但未去开启它的时候,知道门后情形的节目主持人会开启剩下两扇门的其中一扇,露出其中一只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。问题是:换另一扇门会否增加参赛者赢得汽车的机会率? ——wikipedia

现在我们来研究n扇门的蒙提霍尔问题:一共有n扇关闭了的门。只有一扇门后是汽车,其他n-1扇门后是山羊。参赛者选定一扇门后,知道门后情形的节目主持人会开启剩下n-1扇门的其中n-2扇,露出n-2只山羊。主持人其后会问参赛者要不要换另一扇仍然关上的门。求参赛者换门之后获得汽车的概率。

Input 第一行为一个整数T,代表数据组数,T<=1000。 接下来T行,每行一个正整数n,3<=n<=10^18。n的含义如题意所示。

Output 答案要求输出最简分数形式:p/q (p,q互素) 。表示参赛者换门之后获得汽车的概率。

Sample Input 1 3 Sample Output 2/3

这里解释一下那个2/3怎么来的: 假设你永远都会转换选择,这时赢的唯一可能性就是选一扇没有车的门,因为主持人其后必定会开启另外一扇有山羊的门,消除了转换选择后选到另外一只羊的可能性。因为门的总数是三扇,有山羊的门的总数是两扇,所以转换选择而赢得汽车的概率是2/3,与初次选择时选中有山羊的门的概率一样。 补充说明: 第一次选的空门1(概率1/3),之后主持人开另一个空门,换门,得到汽车。 事件总概率 1/3 第一次选的空门2(概率1/3),之后主持人开另一个空门,换门,得到汽车。 事件总概率 1/3 换门后得到汽车总概率:2/3。

代码语言:javascript复制
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
    int t;
    scanf("%d",&t);
    while(t--){
       long long n;
       long long a,b;
       scanf("%lld",&n);
       a=n;
       b=n-1;
       do{
           a=a%b;
           long long tt;
           tt=a;
           a=b;
           b=tt;
       }while(b!=0);
        cout << ( n -1 )/a << '/' << n/a << endl;
    }
    return 0;
}

0 人点赞