所以python验证蒙提霍尔问题。搜狐2017见习生笔试题_概率问题。

首见到这问题是初中的时光买了平按照关于数学谜题的题里面概率论的一样张的课后拓展就是说到三门题材,当时作为一个扩展阅读看了转,里面说到了一个世界智慧高的家里秒杀了美国一大群的数学高材生的脍炙人口故事(比较夸张),当时本着是题材啊是像懂非懂。

一、题目

工程师 M 发明了一样种游戏:M
将一个小球随机放入完全相同的老三独盒子中之某一个,玩家选中装有球的盒子就获胜;开始时
M 会叫玩家选择一个盒子(选择任何一个取胜概率都为 1/3
);玩家做出抉择后,M 会打开没有给挑的个别个盒子中的一个空盒,此时 M
会询问玩家是否变动选择(可以坚持首先不良选择,也得以选择其他一个不曾打开的盒子),下列叙述正确的产生()。

A. 改选后,玩家力克的概率还是 1/3
B. 若未转移选择,玩家的胜利概率是 1/2
C. 无论怎么取舍,获胜的概率都是 1/2
D. 坚持原来的取舍获胜概率再胜似
E. 选择外一个尚未让打开的盒子获胜概率再胜似
F. 获胜概率在随机因素(如小球的实际位置)

哎呀是蒙提霍尔题材?

betway88必威 1

承提霍尔

蒙提霍尔问题,亦称作蒙特霍问题还是三门问题(英文:Monty Hall
problem),是一个溯源博弈论的数学游戏题材,大致出自美国之电视游戏节目Let’s
Make a Deal。问题之名字来该节目的主席蒙提·霍尔(Monty Hall)。

前期的表达是:

参赛者会映入眼帘三扇关闭了之派系,其中同样扇的背后有一致部汽车,选中后面有车的那么扇门就得拿走该汽车,而另外两鼓门后面虽然各藏有雷同光山羊。当参赛者选定了千篇一律扇门,但未去开它的当儿,节目主持人开剩下零星鼓门的中间同样扇,露出里面同样单单山羊。主持人其后会咨询参赛者要无苟更换另外一样鼓仍然关上的宗。
题材是:换其它一样扇门会也增加参赛者赢得汽车的机会率?

斯古老的题目而提出就挑起了剧烈的争辩,有人觉得换与无变换最终收获车的票房价值都是1/2,有人认为换门之晚得及车之票房价值又怪,应该选择换门之晚得交车之票房价值为2/3在作这篇稿子的时刻在果壳上再有人口于为这个争吵,知乎上啊发生过多关于这地方的议论,其实这些争议很多景象下都是因这个题目之模糊表述所招的,关键点在主席于门后的情景是否了解

  1. 倘主席事先知道哪位门里有山羊并且他专程选择了出山羊的山头打开了,那么参赛者应该换其它一样鼓门,这可拿他胜之几率从1/3起及2/3
  2. 若果主席事先不明白谁门里有山羊或者他只是随意的取舍了一个山头,但实情发现里头恰好是山羊。这时候参赛者没有换门的不可或缺,胜利概率总是1/2

以持续之议论,这里运用维基百科达对这一个题目的免马虎的定义

严加的抒发如下:

  • 参赛者在三鼓门被选取一鼓。他并不知道内里出什么。
  • 主席知道各个扇门后面有什么。
  • 主持人要拉开剩下的里同样鼓门,并且要提供换门的时。
  • 召集人永远都见面挑一样鼓有山羊的派系。
    • 假如参赛者挑了同等鼓有山羊的山头,主持人要挑另一样扇有山羊的宗。
    • 若参赛者挑了一样扇有汽车之门户,主持人随机以另外两鼓门被挑一样鼓有山羊的宗。
  • 参赛者会吃问是不是维持他的原本选择,还是改变而选择剩下的那么一道门。

这就是说是题材当即好很好之知情了,引用维基的平轴图片解析:

betway88必威 2

承提霍尔解答

发三种植或的景,全部都产生等的可能(1/3):

  • 参赛者挑汽车,主持人挑个别条羊的其余一样头。转换将砸。
  • 参赛者挑A羊,主持人挑B羊。转换将抱汽车。
  • 参赛者挑B羊,主持人挑A羊。转换将得到汽车。

因此玩家选择换门之后获胜的几率应为2/3

二、解题

平等开始看这书之时段,本人果断的选取了 A
,然后再度细致思量了转,不对啊,这题和经典的三门问题大像,而且为如懂玩家首先潮选择与是否改变选择的有数单事件非是相独立的,因此答案不是以此了,具体答案是什么呢?也接读者留言写下好之意。

再则答案之前,先来了解一下经文的三门题材:

三门题材( Monty Hall problem
)亦曰蒙提霍尔问题、蒙特霍问题要蒙提霍尔悖论,大致出自美国之电视娱乐节目
Let’s Make a Deal 。问题名字来该节目之主席蒙提·霍尔( Monty Hall
)。参赛者会映入眼帘三鼓关闭了的派别,其中同样鼓的末端来一样辆汽车,选中后面来车之那么扇门可抱该汽车,另外两鼓门后虽然各藏有同单单山羊。当参赛者选定了同样鼓门,但切莫失开它的时节,节目主持人打开剩下零星扇门的里边同样鼓,露出里边同样单纯山羊。主持人其后会咨询参赛者要无苟转换另一样鼓仍然关上的家。问题是:换其它一样扇门会吧增加参赛者赢得汽车之机率?如果严格以上述的原则,即主持人清楚地了解,哪扇门后是羊,那么答案是碰头。不换门的话,赢得汽车之几乎率是1/3。换门的话,赢得汽车之几乎统领是2/3。
本条题材亦于叫做蒙提霍尔悖论:虽然该问题之答案于逻辑上连无自相抵触,但要命背直觉。这题目就引起阵阵猛的议论。

证明?

betway88必威 3

承提霍尔解答

定义:

  • 事件A啊平从头玩家选择的平鼓门
  • 事件H也最后门后的结果

  • 设是选无换门的政策

因为选择的是未交换的政策,所有只发生相同起选中的凡汽车,最后才会当选汽车。

  • 选交换门的政策

因选择的凡换成的方针,所有只出同等初始选中的是羊,最后才能够入选汽车。

三门问题之解法:

三门题材共计发生三种植可能:
(1)参赛者挑山羊一样如泣如诉,主持人挑山羊二号。转换将获汽车。
(2)参赛者挑山羊二如泣如诉,主持人挑山羊一样号。转换将得到汽车。
(3)参赛者挑汽车,主持人挑羊一号。转换将砸与参赛者挑汽车,主持人挑羊二号。转换将破产,不会见拿走汽车。

这里而留意了,第三栽可能性的时节,概率还是 1/3 ,因为
1/31/2+1/31/2=1/3 ,所以地方的老三种植可能都是齐的,都是 1/3
。从达到迎的老三种植情形好看来,如果参赛者重新选择其他一样鼓门的话语,
得到汽车的票房价值就会成 2/3
,所以还选择会越加的便利。一开始之说都未会见吃人服气的,因为这时候咱们尚当纠结的凡一致开始分配的几率是1/3,然后去除了一个没有汽车的门后,两独选项,所以概率就是
1/2 ,还有同种植纠结就是管我们怎么挑,三栽状况,每次选的几率都是 1/3
啊,当然,第二种植选择非常爱就受推翻了,因为主持人明确的去了一个休会见沾汽车的门户,因此概率不会见是
1/3
的。一开始自我呢于纠结这个,查了一下,就藏的解释就是是把家的多少增加,比如:

而今张在我们前的出100鼓门,只生内同样扇门后是汽车,而其他的99鼓门后都是山羊。好了,你选中一扇门。自然,你挑选汽车之几率就来1/100。

然后,知道汽车存放处的主席一口气打开了99扇门遭到之98扇,其背后都是山羊。此时而可以坚持最初的取舍,也足以更改选择。你是否应该改成选择?你是否还看以你初选择的帮派与另外99鼓门被唯一没有打开的那扇门背后出汽车之票房价值是同等的?

谜底是,如果您拒绝改变,你只有在同等开端即选择了是的派系的情下才会获得汽车,这个概率就生1%。在另外99%的状况下,你初选择的是一个末尾是山羊的帮派,而除此以外的98鼓已经开辟,你这转初期的取舍虽好成功。所以,在99%之票房价值下,改变选择是没错的。

三门问题是一个悟性选择与机会博弈问题,是有关无了信息博弈中争正确理解概率的意思和几率变化之问题。可见这题材我们密切琢磨一下,还是得做出科学的选取的。

众所周知这还是免可知无限给人口受,因此写个 JAVA 程序来法一下以此场面:

package com.liangdianshui;

import java.util.Random;

public class MontyHallProblem {

    public static void main(String[] args) {
        // 重复五次
        for (int i = 0; i < 4; i++) {
            montyHallProblem();
            System.out.println("----------------------------------");
        }
    }

    public static void montyHallProblem() {
        Random random = new Random(); // 这里不讨论Random为伪随机的问题
        int changeCount = 0;
        for (int i = 0; i < 1000000.0f; i++) { // 模拟一百万次
            // 假设有三个门
            int[] doors = new int[3];

            // 随机抽取一扇门 ,在门后放奖品
            int rIndex = random.nextInt(3);
            doors[rIndex] = 1;

            // 观众选的门号
            int randomSelect = random.nextInt(3);

            // 主持人从剩下的两扇门中排除一个
            while (true) {
                int randomDelete = random.nextInt(3);
                // 主持人不会打开参赛者已经选了的门(排除参赛者选择的门)
                if (randomDelete == randomSelect) {
                    continue;
                }
                // 主持人不会打开有奖品的门(排除有奖品的门)
                if (doors[randomDelete] == 1) {
                    continue;
                }

                for (int j = 0; j < 3; j++)// 换门
                {
                    if (j == randomSelect)// 不换门(因为我们要得到的是换门的概率,因此把不换门的排除掉)
                        continue;
                    // 排除主持人打开了那个门(因为门已经打开,所以不能换,排除掉)
                    if (j == randomDelete)
                        continue;
                    if (doors[j] == 1) {
                        changeCount++;// 换了门后中奖的次数
                        break;
                    }
                }
                break;
            }
        }
        System.out.println("换门中奖率:" + changeCount / 1000000.0f);
    }

}

末了运行的结果:

betway88必威 4

三门问题JAVA运行结果

基于结果可见,这里再次了季不善,每次都如法炮制了一百万涂鸦的选料换门的景,发现换门中奖的概念都是
0.66 左右,也即是 2/3 。

次验证

推行是考查真理的唯一标准,在流言终结者看到他们人工再这实验区验证,发现这么充分浪费时间。何通过计算机去去学这同一段落过程吧?
下面用python程序来效仿这同样段子过程:

from __future__ import division
import logging
from matplotlib import pyplot as plt
import numpy as np
import random


class MontyHall(object):
    """docstring for MontyHall"""

    def __init__(self, num=3):
        """
        创建一个door列表
        0 代表关门
        1 表示后面有车
        -1 代表门被打开
        """
        super(MontyHall, self).__init__()
        self.doors = [0] * num
        self.doors[0] = 1
        self.choice = -1
        self.exclude_car = False
        self.shuffle()

    def shuffle(self):
        """  
        开始新游戏
        重新分配门后的东西
        """
        if self.exclude_car == True:
            self.doors[0] = 1
            self.exclude_car = False
        for i in xrange(len(self.doors)):
            if self.doors[i] == -1:
                self.doors[i] = 0
        random.shuffle(self.doors)

    def make_choice(self):
        """
        player随机选择一扇门
        """
        self.choice = random.randint(0, len(self.doors) - 1)
        logging.info("choice: %d" % self.choice)
        logging.info("original: %s" % self.doors)

    def exclude_doors(self):
        """
        主持人知道门后的情况排除门
        直到剩余两扇门
        """
        to_be_excluded = []
        for i in xrange(len(self.doors)):
            if self.doors[i] == 0 and self.choice != i:
                to_be_excluded.append(i)  
        random.shuffle(to_be_excluded)
        for i in xrange(len(self.doors) - 2):
            self.doors[to_be_excluded[i]] = -1
        logging.info("final: %s" % self.doors)

    def random_exclude_doors(self):
        """
        主持人并不知道门后面的情况随机的开门
        直到剩余两扇门
        """
        to_be_excluded = []
        for i in xrange(len(self.doors)):
            if self.doors[i] != -1 and i != self.choice:
                to_be_excluded.append(i)  
        random.shuffle(to_be_excluded)
        for i in xrange(len(self.doors) - 2):
            if self.doors[to_be_excluded[i]] == 1:
                self.exclude_car = True
            self.doors[to_be_excluded[i]] = -1
        logging.info("final: %s" % self.doors)

    def change_choice(self):
        """
        player改变选择
        """
        to_change = []
        for i in xrange(len(self.doors)):
            if self.doors[i] != -1 and i != self.choice:
                to_change.append(i)
        self.choice = random.choice(to_change)
        logging.info("choice changed: %d" % self.choice)

    def random_choice(self):
        """
        player 第二次随机选择门
        """
        to_select = []
        for i in xrange(len(self.doors)):
            if self.doors[i] != -1:
                to_select.append(i)
        self.choice = random.choice(to_select)
        logging.info("random choice : %d" % self.choice)


    def show_answer(self):
        """
        展示门后的情况
        """
        logging.info(self.doors)

    def check_result(self):
        """
        验证结果
        """
        got_it = False
        if self.doors[self.choice] == 1:
            got_it = True
        return got_it

总结

看得出我们是面试题和三门题材着力均等,所以最后挑选的答案是E,也就是是挑外一个从未为打开的盒子获胜概率再强。因为自也没有法定的答案,如果生异议的话,可以进行留言。或者有摩擦的地方,也可进行留言指出,本人会第一时间进行改动。

依傍1000轮子,每一样轮再试验1000坏

  • 切莫转选择:

def unchange_choice_test(n):
    """
    不改变初始的选择
    """
    result = {}
    game = MontyHall()
    for i in xrange(n):
        game.shuffle()
        game.make_choice()
        game.exclude_doors()
        if game.check_result():
            result["yes"] = result.get("yes", 0) + 1
        else:
            result["no"] = result.get("no", 0) + 1
    for key in result:
        print "%s: %d" % (key, result[key])
    return result["yes"] / n

if __name__ == '__main__':
    logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.WARNING)
    results = []
    test_num = 1000
    round_num = 1000
    for x in xrange(0,round_num):
        results.append(change_random_test(test_num) )

    y_mean = np.mean(results)
    y_std = np.std(results)
    x = range(0,round_num)
    y = results
    plt.figure(figsize=(8,4))

    plt.xlabel("round")
    plt.ylabel("frequency")
    plt.title("The frequency of the success")
    tx = round_num / 2
    ty = y_mean
    label_var = "$\sigma \left( X \\right)=$%f" % y_std
    label_mean = "$ X =$%f" % y_mean
    p1_label = "%s and %s" % (label_var,label_mean)
    p1 = plt.plot(x,y,"-",label=p1_label,linewidth=2)
    plt.legend(loc='upper left')


    pl2 = plt.figure(2)
    plt.figure(2)
    plt.hist(results,40,normed=1,alpha=0.8)
    plt.show()

结果:

betway88必威 5

此处输入图片的叙述

概率分布:

betway88必威 6

此地输入图片的描述

打响之票房价值都值在 1/3 附近

  • 改选择:

def change_choice_test(n):
    """
    交换选择的门
    """
    result = {}
    game = MontyHall()
    for i in xrange(n):
        game.shuffle()
        game.make_choice()
        game.exclude_doors()
        game.change_choice()
        if game.check_result():
            result["yes"] = result.get("yes", 0) + 1
        else:
            result["no"] = result.get("no", 0) + 1
    for key in result:
        print "%s: %d" % (key, result[key])
    return result["yes"] / n

同样的办法绘图得到结果:

betway88必威 7

这边输入图片的描述

概率分布:

betway88必威 8

此输入图片的讲述

成功的概率都值在 2/3 附近

通过地方的剖析及法可知最佳的政策当然就换门。

尤其深入之座谈

  • 只要家的数据持续是3单,如果是50鼓门为?

betway88必威 9

此间输入图片的叙说

这种情形下,主持人打开48鼓都是羊的门后,再于你选择,很多口之上理应就是非会见固守那1/2,而会选取换门
管家的数据增大到100,1000,这种情形会尤其显著。
要么经过一样段先后模拟说明:

def change_choice_test_large(n,m):
    """
    交换选择的门
    """
    result = {}
    game = MontyHall(m)
    for i in xrange(n):
        game.shuffle()
        game.make_choice()
        game.exclude_doors()
        game.change_choice()
        if game.check_result():
            result["yes"] = result.get("yes", 0) + 1
        else:
            result["no"] = result.get("no", 0) + 1
    for key in result:
        print "%s: %d" % (key, result[key])
    return result["yes"] / n


if __name__ == '__main__':
    logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.WARNING)
    results = []
    test_num = 1000
    round_num = 1000
    for x in xrange(0,round_num):
        results.append(change_choice_test_large(test_num,50) )

结果:

betway88必威 10

betway88必威 11

这会儿就要挑交换门

  • 逢这种状态本身异常纳闷,我说了算委硬币决定,这个时成功的几率?

即是第3栽政策,成功之概率和硬币有关,也就算是1/2,这种景象便是自剩下的门中随机选择同一鼓,这个方针从者分析来拘禁不是极端好的,但是正如不转移之策略要好。
次的依样画葫芦结果:

betway88必威 12

这里输入图片的叙说

betway88必威 13

这边输入图片的讲述

  • 按照门意外打开的情形吧,也即是端描述的亚种情景(主持以不知门后的情下打开门也)?

这种景象下实际就算是一个标准概率,事件A是玩家最后开至的是车,事件B是主席打开的帮派是羊。

盖只有主席开始到是羊之图景下,玩家才发出或开始及车所以

假如玩家首先不好选择的门为事件C

  • 勿交换策略下的法概率是:

QQ截图20150510140602.png

  • 换成策略下的规则概率是:

所以当主席不亮堂门后的景况下开拓一鼓,然后发现门后是羊之动静下,换门与不换门最终的几率都是1/2
要可以透过序进行模拟:

def unknown_doors_choice_test(n):
    """
    主持人并不知道门后面的情况随机的开门
    交换选择的门
    """
    result = {}
    game = MontyHall()
    continue_count = 0
    for i in xrange(n):
        game.shuffle()
        game.make_choice()
        game.random_exclude_doors()
        game.change_choice()
        if game.exclude_car == False:
            continue_count += 1
        if game.check_result():
            result["yes"] = result.get("yes", 0) + 1
        else:
            result["no"] = result.get("no", 0) + 1
    #for key in result:
    #    print "%s: %d" % (key, result[key])
    logging.info("continue_count: %d" % continue_count)
    if continue_count == 0:
        return 0.0
    return result["yes"] / continue_count   

betway88必威 14

这边输入图片的讲述

betway88必威 15

此间输入图片的叙述

当这种场面下交换门也并未晋级成功之几率


总结

今日写的即首东西啊总算了解我小时候底一个不满,人的直觉有时候是那个不可靠,要摆脱个人局限的咀嚼才会揽更特别的世界。
什么?看罢这些分析,你还当无合意那你还足以于下面的参阅中寻找再好之辨析,本文撰写过程发生局部的图纸引用自一下的参照,如果你还出问题欢迎您关系自己更加的议论。

练习

下面是三门题材的少只翻版,引用自三门题材及有关:

女孩的票房价值

  • 您结交一位新情人,问它是否来男女。她说有,有半点只。你问,有女孩啊?她说发生。那么,两个都是女孩的票房价值是有些?

答:三分之一。因为那个两独男女的可能有四种等或:BB、GG、BG、GB(即男男、女女、男女、女男)。
因为我们曾经知晓至少有一个姑娘,所以BB是匪可能的。因此GG是可能出现的老三个相当或的结果之一,所以片独孩子还是幼女的概率为三分之一。这对准承诺了三门问题之首先种植情景。

  • 君结交一个新对象,问它是不是发生子女。她说有,有半点只。你问,有女孩为?她说出。第二龙,你见她带来了一个略女孩。你问问它,这是公姑娘呢?她说,是。她底简单只儿女还是女孩的票房价值是稍稍?

其一概率和非常女孩的几率一样,二分之一。这如大意外,因为我们所兼有的音讯看起连无可比第一种植情形时常多,但概率也差。但是此间的题材其实是,那个而没有>见了的孩子是女孩的概率是聊?这个概率和死女孩的票房价值一样,二分之一。
随即对承诺了三门题材的次种状况。当然这里为发语言问题,必须使这员母亲不是一定带出一个多少女孩来让你看之。也就是说你不过是正发现了她是各有点女孩。这在是判选择
或q
随机挑选。如果是吃您刚好遇上见这是属于擅自选。这就针对诺了三门题材之次栽状态。这其实是增多了音讯之。否则如果它积极带一个略女孩过来为你,则属于判断选择。
卿沾的答案依赖让所摆的故事;它依靠让你是何等得知至少一个亲骨肉是女孩的。

老三罪犯问题

  • 亚当、比尔和查尔斯给牵涉在一个看守所里,只有监狱看守知道哪位会给判定死刑,另外两号将会晤释放。有1/3底票房价值会叫处死刑的亚当,给他娘写了扳平查封信,想如果自由的比尔或查尔斯帮忙代寄。当亚当问看守他应将他的归依交给比尔要查尔斯时,这员有同情心的防御好窘迫。他以为使他把将要获释的丁之名告诉亚当,那么亚当就会发生1/2的概率为判定死缓,因为剩下的人头及亚当这简单口遭毫无疑问有一个丁于处决。如果他不说这消息,亚当于杀的几率是1/3。既然亚当知道其他两口惨遭肯定有同等丁见面放,那么亚当自己为处死的概率怎么可能会见因守告诉他外两人受受获释者的人名后要改为?

没错的答案是:看守不用当心,因为纵把自由人之人名告诉亚当,亚当被处决的几率仍是1/3,没有改观。但是,剩下的那位没给点名的食指即有2/3之票房价值为处决(被行刑的可能性升高了)。如果这个题材易一种说法,就是防守无意间说发生了查尔斯不见面格外。那么几率就见面时有发生转移。
此实际跟三门问题是一模一样的。你可将狱卒当成主持人,被杀当成是大奖,那么这是对应于三门题材之首先种植状态,就是主持人知道门后面的情。狱卒说生谁会吃放走,相当给主席打开一扇门。但是盖三囚徒问题未能够挑,也就是相当给三门问题受到之无换门的国策。最终之几率还是1/3凡不曾生反的。
以避免发生歧义,规定一下:
1.要是(亚当,查尔斯)被放走,那么狱卒会告知亚当:”查尔斯于假释”。
2.使(亚当,比尔)被放走,那么狱卒会报亚当:”比尔被释放”
3.假设(查尔斯,比尔)被放,那么狱卒会以1/2之几率告诉亚当:”查尔斯为放走”或者”比尔于放飞”
意思就是大扎眼了,在看守说发生比尔为放出的规范下,亚当被放走的几率是?用口径概率算一下。
概念事件:

A :狱卒说有”比尔于放出”
B :代表亚当为释放。

betway88必威 16

这就是说什么时才是1/2之几率也?
规则3更改为:如果(查尔斯,比尔)被假释,那么狱卒会报告亚当”比尔给放”
夫时刻计算就是:

betway88必威 17

那如果规则3改观也:如果(查尔斯,比尔)被保释,那么狱卒会报告亚当”查尔斯于放出”
是上:亚当被放飞的票房价值就见面成1
题目在规则2与规则3生说”比尔为放出”不是相当概率发生的。

看似的题材还有

  • 丢两枚硬币里有一致枚硬币是正经,问两朵硬币都是正面的几率是?
  • 丢掉两朵硬币里第一枚硬币是尊重,问两朵硬币都是正当的票房价值是?

the end.


参考:

  1. 承提霍尔问题 –
    维基百科,自由的百科全书

  2. 其三鼓门问题 |
    左岸读书

  3. 蒙提霍尔问题(又如三门题材、山羊汽车问题)的正解是什么?

  4. 趣味编程:三门问题

  5. 三门题材与连锁

  1. 变还是免移?争议尚未停下了之三门题材

  2. 每当「三门题材」中,参与者应该选「换」还是「不移」?主持人是否知晓门后情形对结论有哪里影响?

  3. THE MONTY HALL
    PROBLEM

  4. 流言终结者第九季

  5. 有家庭蒙来 2
    单小孩,已掌握其中一个凡是女孩betway88必威,则其它一个凡男孩的票房价值是有点?-知乎

  6. 打贝叶斯定律的角度理解“蒙提霍尔问题”和“三单罪犯问题”

  7. 其三只囚徒问题,求解?


履新日志:

  • 2015-05-20 增加三幽禁徒问题的解答
  • 2015-05-09 第一次于创作

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注