三门问题C语言验证,实验法检验三门问题的策略

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

三个门中有一个门有奖品,主持人知道奖品在哪一个门,但是主持人的行为不具有动机,他不会做任何暗示。

你先确定一扇a门,还没打开,这时主持人打开另一扇没有奖品的b门,然后问你要不要换c门。

一种策略是换门,一种不换。

以下为方便检验,我把三门问题扩展成10个门来做实验。

做完程序模拟我sb了。

假设实验如下,有10个门,其中一个门有奖品,然后由嘉宾随机选择一个门。这样还剩下9个门,这九个门中至少有8个空门,由主持人开掉8个空门。这时嘉宾可以在剩下的两个门中重新选择。问题是:此时嘉宾的最佳策略是什麼,是放弃第一选择选取另一个门还是坚持第一选择。

我用c语言编写了一个输出0-9十个数字的小程序,来模拟奖品的放置位置和嘉宾的选择。一次实验需要输出两个随机数,第一个随机数代表奖品放置的位置,第二个随机数代表嘉宾的选择。例如(9,6)的实验结果表示奖品放在9号门,而嘉宾第一选择选取了6号门。因为其他8个空门被主持人开了,所以只需要两个数字就足以模拟实验过程了。

我总共做了6组实验,取得了6组随机数。如下

(9,6)(8,3)(6,1)(8,7)(4,8)(5,6)

然后我注意到这6组数字每组内部的两个数字都不相等,故而没有信心再做下去了,这样的结果代表嘉宾的第一选择选对奖品的概率非常小,只有10%,所以,嘉宾的最佳策略因该是换掉第一选择。

--------------------------华丽的分割线----------------------------

附上我的c++代码

#include

#include

#include

main()

{fa:;

int i;

unsigned seed=time(NULL);

printf("seed=%u\n",seed);

srand(seed);

i=rand()%10;

printf("%d\n",i);

getchar();

getchar();

goto fa;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值