FUCK!换门真的是2/3几率赢,运行出来我都不敢相信。FUCK!!!
原谅爆粗,大概是昨晚通宵,今天看到这个问题脑袋也转不开了,懵比。。。
以下是代码(Python):
import numpy as np

class Player(object):
def choose_door(self, door_set):
door_set[2] = 1 # 刚开始选择1号门

def decide_door(self, door_set): # 最终的决定
if STRATEGY == 'A':
pass
else:
door_set[2] = 2 if door_set[1] == 3 else 3 # 换门


class Host(object):
def choose_door(self, door_set): # 玩家初选后,主持人需选出一扇有羊的门
if door_set[0] == 1: # 玩家选对了
door_set[1] = np.arange(2, 4)[np.random.randint(0, 2)] # 如果玩家选对了,主持人需要在2、3号门中以50-50的概率随机开一扇
else: # 玩家没选对
door_set[1] = 2 if door_set[0] == 3 else 3 # 如果玩家没选对,主持人必需开启2、3号门中有羊的那一扇


for STRATEGY in ['A', 'B']: # 策略A表示不变,B表示改变选择
player = Player()
host = Host()

n = 100000
doors = np.zeros((n, 3)) # n*3矩阵,每行表示一次试验,第一列储存车所在的门号(1-3),第二列储存主持人选择的门号,第三列储存玩家选择的门号
doors[:, 0] = np.random.randint(1, 4, size=n) # 预生成车的门号

for i in range(n):
door_set = doors[i]
player.choose_door(door_set)
host.choose_door(door_set)
player.decide_door(door_set)

# 统计
print('策略'+STRATEGY, '胜率', (doors[:, 0] == doors[:, 2]).sum() / n)

决胜21点(2008)

又名:斗智21点(港) / 玩转21点 / 攻陷拉斯维加斯 / 21 - The Movie / 21: Blackjack

上映日期:2008-03-28(美国)片长:123分钟

主演:吉姆·斯特吉斯 凯文·史派西 凯特·波茨沃斯 艾伦·余 莉萨 

导演:罗伯特·路克蒂克 编剧:Peter Steinfeld/阿兰·里布 Allan Loeb

决胜21点的影评