西西河

主题:【原创】关于换不换门的问题,大家讨论。 -- 淡紫若兰

共:💬212 🌺89
分页树展主题 · 全看首页 上页
/ 15
下页 末页
      • 家园 我的直觉是不换……

        你不知道门后有什么呀,此时问题已经变成二选一了,我不会再去看那9998扇门了,样本空间已经变化了。

        • 家园 这个... 看来大家的直觉很不一样啊

          不谈概率,只谈直觉。

          对于n多门的情况,我的直觉是,第一次就蒙上也太不可能了,既然主持人知道是那个门里有奖,而且就给我剩了一个门,那显然是这一扇门里有奖阿。尤其是对于无穷多门的情况更是如此。

    • 家园 【原创】当时的代码。有点乱。

      int doors[3][2] = {0}; //数据,全局,第一维为中奖位置,第二维为用户选择位置,如果被选择,则置一

      int WinTimes = 0; //中奖次数,全局,每次调用时由调用函数置0。

      void Dothegame()

      {

      //选定一个位置做为中奖位置, doors第一维该位置1;

      int rd = rand();

      int Bingo = rd%3;

      doors[Bingo][0] = 1;

      //选定一位置作为指定位置,doors第二维该位置1;

      int choose = rand()%3;

      doors[choose][1] = 1;

      //去掉一个未中奖且未被选择位置

      for(int i = 0; i <= 2; i++)

      {

      if((doors[i][0]==0) && (doors[i][1]==0))

      break;

      }

      //此时i为被去掉位置。

      //更改选择

      int Final= 3-i-choose;

      if(doors[Final][0] == 1)

      {

      WinTimes++;

      }

      }

      void CTest231Dlg::OnOK()

      {

      this->UpdateData();

      WinTimes = 0;

      // srand( (unsigned)time( NULL ) );

      srand( (unsigned)GetTickCount ( ) );

      m_list.ResetContent();

      int t = this->m_times;

      for(int a = 0; a<t; a++)

      {

      memset(doors, 0, sizeof(doors));

      Dothegame();

      }

      ShowResult();

      // CDialog::OnOK();

      }

    • 家园 【讨论】更加变态的变种

      考虑这样一个更加变态的变种。

      同样规则的游戏,没有主持人,三道门改成电脑控制,电脑可以感知奖品在哪道门内。

      模式A控制逻辑如下:

      嘉宾先进行选择,然后电脑在剩下的两道门中随机选择,选好了就对比门内是否有奖品。如果有,放弃这个选择,重新随机选择,如此反复,直到(随机地)选到一个没有奖品的门,然后打开这个空门,最后让嘉宾选择是否换门。

      模式B控制逻辑如下:

      嘉宾先进行选择,然后电脑在剩下的两道门中随机选择,选好了就对比门内是否有奖品。如果没有,直接开门,如果有,直接开另一道门(必然是空门),最后让嘉宾选择是否换门。

      模式C控制逻辑如下:

      嘉宾先进行选择,然后电脑在剩下的两道门中直接判断哪道门是空门,直接打开空门。如果两道都是空门,就随机打开一道,最后让嘉宾选择是否换门。

      在这些不同模式下,嘉宾的最佳策略是什么?使用最佳策略后赢面各有多少?

分页树展主题 · 全看首页 上页
/ 15
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河