我的Monty Hall刺激器代码有困难(python)

时间:2018-02-04 04:52:54

标签: python python-3.x

Monty Hall游戏是什么:

舞台设置有三个标有#1,#2和#3的大门。两扇门后面是一只山羊。在另一扇门的后面是一辆新车。你不知道哪辆车有车,但Monty Hall要你开门。假设你选择#1门。蒙蒂霍尔然后打开其他门之一(比如门#3),并告诉你背后有一只山羊。然后他说:"我会给你一个改变主意的机会。你想改变主意并选择2号门吗?"在你做出决定之后,他们打开你最后选择的门,你会发现你是否赢得了新车或新山羊。澄清一下:在游戏开始之前,汽车和山羊的位置是固定的。在比赛过程中,蒙蒂没有机会改变现状。

我必须做什么:

我需要使用Python 3 创建游戏刺激器。我必须加入一个随机数发生器。该程序将询问用户随机数生成器种子。随机数生成器的目标是随机的。在我的程序开始模拟“让我们成交”之前,它应该向用户询问整数并将其设置为种子。如果用户提供的输入不是数字,程序应立即退出并显示"种子不是数字!"如果用户给出输入的数字,则游戏将开始。然后游戏将询问用户用户想要运行多少游戏。如果用户说5,游戏将重复五次。一旦游戏运行了用户说的次数(如5),那么游戏将再次询问用户用户想要再次玩多少次。(我很难将游戏循环到该数字用户说的时间,然后在完成后询问问题。如果用户说'退出'随时,游戏立即结束。当被问及用户想要运行多少游戏时,如果用户没有输入数字,程序将只是说"请输入一个数字"直到用户最终输入一个数字。

该计划必须做什么:

该程序将更容易,因为它将打印门和标签哪个门有山羊或汽车。所以它会显示" G" " C" " G"他们将在每场比赛中进行洗牌,所以如果程序输出:[C G G]车将在第一门。 Monty(在这种情况下,Monty只是一个变量)会选择"一个门,程序随机生成一个1,2或3的数字。如果用户选择一个有车的门,程序会说用户应该坚持他们为了获胜而选择的门。如果用户选择有山羊的门,程序会说用户应该更换他们选择的门以便用汽车拣门(我被困在这个部分)。在每组游戏之后,该程序总结了玩家应该切换多少次以及他们应该停留多少次。如果游戏数量小于或等于10,程序将打印出每个游戏的结果。如果结果大于10,则只打印摘要。

示例

如果输入为:

25

5

出口

输出应为:

输入随机种子:

欢迎来到蒙蒂霍尔分析

输入'退出'退出。

我们应该进行多少次测试?

第一场比赛

门:[' G',' C',' G']

玩家选择门1

Monty选择Door 3

玩家应该切换到胜利。

第2场比赛

门:[' C',' G',' G']

玩家选择门1

Monty选择2号门

球员应该保持胜利。

第3场比赛

门:[' G',' C',' G']

玩家选择门2

Monty选择1号门

球员应该保持胜利。

第4场比赛

门:[' C',' G',' G']

玩家选择门1

Monty选择2号门

球员应该保持胜利。

第5场比赛

门:[' G',' C',' G']

玩家选择门3

Monty选择1号门

玩家应该切换到胜利。

60.0%的时间保持赢得。

Switch赢得了40.0%的时间。

我们应该进行多少次测试?

感谢您使用此程序。

我是一个非常初学的程序员,如果这让人感到困惑或没有意义,他会努力学习。到目前为止我有一个程序,我知道它不是很好。如果有人可以帮助我,那将非常感激。我对其随机化方面感到非常困惑。

以下是我的计划输出

输入随机种子:

欢迎来到蒙蒂霍尔分析

输入exit退出。

我们应该进行多少次测试?

种子不是数字!

以下是我的计划:

import random
random_seed = input('Enter Random Seed:\n')
try:
    random_seed = int(random_seed)
    print('Welcome to Monty Hall Analysis') 
    exit = input('Enter ''exit'' to quit.\n')
    tests = int(input('How many tests should we run?\n'))
    try:
       tests = int(tests)
       while True:
           select_door = ['G', 'C', 'G']
           player_door = input('Doors', random.shuffle(select_door))
           doors = [1, 2, 3]
           random.choice(doors)
           print('Player Selects Door', select_door)
           print('Monty Selects Door', random.choice(doors))
           if exit == 'exit':
               print('Thank you for using this program.')
               break
    except ValueError:
        print('Please enter a number:\n')
except ValueError:
        print('Seed is not a number!')

我知道代码和我的描述并不完美,但嘿,我正在尽我所能!

0 个答案:

没有答案