首页 > 试题广场 >

硬核抽奖

[编程题]硬核抽奖
  • 热度指数:83 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解

智加年会惯例的抽奖环节,获得一等奖抽奖资格的同事需要面对一个挑战:主持人会在三个盲盒中的某一个里面放上奖品,然后请抽奖同事指定其中一个盒子。
主持人知道奖品在哪个盒子里,因此,无论抽奖同事选择的盒子中有没有奖品,主持人会从剩下两个盒子里面打开其中一个没有奖品的盒子。这时,除去抽奖者选择的盒子,
主持人打开的没有奖品的盒子,场上还剩下一个盒子。这时候主持人会询问抽奖同事:“我为你排除了一个没有奖品的盒子,你现在要改变选择、选最后剩下的那一个吗?”
抽奖者确定改选或者不改选后,主持人就会打开抽奖者最终选中的盒子,并恭喜中奖(或遗憾宣布与奖品失之交臂)

  • 抽奖者为最大化中奖概率,他应该改选还是不改选,为什么?
  • 我们将上一问题推广,现有 k 个一等奖奖品,放在 m 个盒子中。在抽奖者完成第一次选择后,主持人会在剩下的 m-1 个盒子中,打开 n 个空盒,并且
    询问候选人,是否要改选为剩余的 m-1-n 中的某一个,试给出抽奖者改选以及不改选的中奖概率公式,并证明 对于任意 k,m,n (0<k<m-1-n, m>=3, n>=1)
    存在两种策略的中奖概率一种恒大于另一种
  • 【本题编程】试用编程模拟上一问题
示例1

输入

3,1,1,true

输出

0.6666666666666666