zoukankan      html  css  js  c++  java
  • 论人类思考时的贝叶斯过程

    http://fmajor.lamost.org/blog/?p=1177

    清晨,闹铃声在耳边想起,你闭着眼睛,双手顺着声音胡乱的在摸索,终于找到了手机,按下了上面唯一的一个实体键——让我们再睡十分钟吧。经过了若干 次这样的拉锯战以后,你终于决定起床,揉了揉眼睛,看了看表,马上就完全清醒了,因为你发现还有15分钟上课。然后你马上就开始了对人生的思考:“我是 谁?我在那?宇宙的起源是神马?我还去不去上第一节课了?”。“5分钟穿衣洗漱,自行车5分钟赶到教室,这完全可行。哦不,现在主要道路都堵得跟二环似 的,自行车速度~步行速度,这样的话就需要10分钟了……啊这个课老师开学第一节课点过名,这都半学期了,今天肯定要点名,一定要去啊…”,说时迟那时 快,你一个鲤鱼打挺站了起来,根据衣物与你的距离,迅速在脑中生成一个穿衣前驱图,开启并行模式,在4分钟内就完成了穿衣洗漱准备出门。这时候你又比较纠 结了:“既然提前了一点时间,那要不要吃早饭呢?”。“到食堂吃早饭肯定是来不及了”,你伸出头看了看楼下煎饼店长长的队伍,“煎饼也没戏了,超市里买面 包的队伍这会儿肯定也是长长的”,最终你选择不吃饭悠哉悠哉的骑着自行车去上课了,发现只来了一半的同学,老师没有点名,于是你心中开始嘀咕:“国庆前的 周一上个什么课!!”,现在的问题是午饭该吃什么了。

    从清醒的那一刻起,我们就开始不停的做着各种判断,然后根据我们的判断去指挥身体完成目标。这一切看起来都非常非常的自然,如果你决定了去做一件事,你对这件事情的感觉自然是是“我要去和我应该去”做它;还有一种情况是你需要在同类别的事物中选择一个去做,那么就是比较你对这些事物的“我要去和我应该去”做它的感觉哪一个更为强烈了。假如我要制作一个人工智能的机器,那么就需要它根据自己的那种感觉像人类一样去做一些判断。现在的计算机都是基于数字电路的,于是我就想到把这一种感觉给数字化,比如把你认为A事件为真的感觉的强烈程度用一个实数P(A)表示,然后你会根据P(A)的大小去进行一些判断。比如说A=这个姑娘很好看,那么你经过思考得到了P(A)的数值,你可以根据这个数值而跟室友说:“那个妹子不错”或“快看那个大姐”。虽然都是在计算P(A),可为什么每个人的P(A)大小都不一样呢?或许我们不应该把这个数值记做P(A),而应该记做

        [P(A|B)]

    或者P(A|你所知道的一切),读作“根据你所知道的一切而得到的A事件为真的感觉的强烈程度的数值”T_T|||||。你的所有推测和感觉都是基于你的背景知识B(也称作先验信息)。背景知识不同的人有可能做出相同的判断,但做出不同判断的人之间背景知识肯定不同。你的背景知识与你所处于的环境保持动态平衡,背景知识随着生活中发生的事件而不断积累和改变。本来P(买煎饼做早餐|B)的数值还让我无法做出明确的判断,可我瞄了一眼楼下,得到C=现在楼下煎饼摊前面有很长的队伍,然后P(买煎饼做早餐|CB)的数值就马上然我觉得现在买煎饼做早餐实在是太不靠谱了

    说起感觉或者推断,学过数理逻辑的同学脑中一定先浮现出这些玩意儿

        [	extrm{if A is true, then B is true}]

        [	ext{A is true} Longrightarrow  	ext{B is true}]

    这些逻辑推理方式被称为”strong syllogisms”,我们得到的所有东西都是确定、唯一的,严密的服从逻辑。

    但是我们从直觉上有时候还会用到下面的一种逻辑推断方式

        [	ext{if A is ture, then B is true}]

        [	ext{B is true}  Longrightarrow 	ext{A becomes more plausible}]

    这种逻辑演绎方式被称为”weak syllogisms”

    比如R=马上要下雨,C=现在是阴天,我们有

        [R Longrightarrow C]

    的因果关系,但是我们们瞄了一眼窗外,观察到C,如果现在是雨季,那么P(R|CB)的数值会让我们几乎断定R的发生,而在其他季节也会让你觉得R更有可能发生了。可以表示为

        [P(R|CB)>P(R|B)]

    有时候我们只有R Longrightarrow C 的因果联系的陈述,但是这可能给你带来C Longrightarrow R 感觉或者“错觉”(下雨==>阴天?阴天==>下雨?)。

    我们错了么?没有。因为我们认为错误的是“C Longrightarrow R 是一个因果联系”这一个陈述,但C Longrightarrow R 作为一个逻辑联系的陈述就没有了对于错,只有你对这个陈述的感觉:你认为这个逻辑联系是正确的感觉强烈程度是多少呢?类此的陈述还有“她对你好 Longrightarrow 她喜欢你”。

    我们已经决定将对一个事物是否正确的感觉的强烈程度进行数字化并将其作为一个人工智能机器人进行逻辑推断的判据,那么应该如何操作呢?我确信一件事情的时候P(A|B)应该是多少呢?确信它不可能发生呢?于是我们就对这样一个人工智能机器设定了以下的推断原则:

    1. 它对一个事物是否正确的感觉的强烈程度要用一个实数P(A|B)来表示。(也称之为可能性,这正是我们想要做的)
    2. P(A|B)定性上要与感觉本身相符合。(比如越强烈就越大)
    3. 如果一种感觉可以通过多种思考顺序来实现(引入不同的先验知识的顺序),那么任意一种顺序得到的感觉应该一样P(A|BC)=P(A|CB)(我中午吃A还是吃C与我想到的A与C的顺序无关,但是我必须把A与C都考虑进去了)
    4. 它获得对一件事物的感觉的时候必须把跟这件事物的所有相关信息都考虑进去,没有选择性的忽略
    5. 如果两台机器用于推断的先验知识完全一样,那么这两台机器一定会对一个事物有相同的看法(相同的P(A|B))。

    可以从数学上证明:如果一台机器服从以上5个原则,它可以进行完全客观的判断,并且关于P(A|B)的值有下面几条性质:

    1. 乘法定律:P(AC|B)=P(C|B)	imes P(A|CB)=P(A|B)	imes P(C|AB)
    2. 加法定律:P(A+C|B)=P(A|B)+P(C|B)-P(AC|B)
    3. P(A|CB)=P(A|B)frac{P(C|AB)}{P(C|B)} (贝叶斯定律)
    4. 若A事件为真,那么P(A|B)=1,若为假,则P(A|B)=0

    以上所有的性质都通过数学方法证明出来的,比如性质4,我们并没有“”若A事件为真,那么P(A|B)=1,而是通过我们的推断原则证明出来的。

    推断原则1~5是符合我们进行完全客观的判断直觉的,我们尝试用这样一套数值化的推断方式去解释关于我们思考过程的一些现象。

    1、相信与不相信的一件事物

    我们相信一件事物,因为P(A|B)接近1。判断P(A|B)是否接近1被称为假设检验。而我们相信它,是在我们已经积累的知识的基础之上的。在我们出生之时,先验知识接近于没有,我们通过不断感知外接刺激来进行学习,每一个新的事件都有可能改变我对一个事物的看法,表示为:

    (1)   egin{eqnarray*} P(A|DB)&=&P(A|B)frac{P(D|AB)}{P(D|B)}\ &=&P(A|B)frac{P(D|AB)}{P(D(A+ar A)|B)}\ &=&P(A|B)frac{P(D|AB)}{P(DA|B)+P(Dar A|B)}\ &=&P(A|B)frac{P(D|AB)}{P(A|B)P(D|AB)+P(ar A|B)P(D|ar AB)} end{eqnarray*}

    其中D代表数据(Data),即新发生的有可能改变你的看法的一件事情。B还是背景知识(background)。ar A代表“非A”,即A的否定。上式就是贝叶斯推断的基本形式。

    如果DA没有任何逻辑上的关系,比如D=我扔了一个硬币正面朝上,A=她喜欢我,那么就有P(A|DB)=P(A|B),D没有给你对A的判断造成任何影响。如果DA有逻辑上的联系,那么D给你对A的判断造成影响可以用上式来表示。

    如果现在有一位半仙儿向你声称他据有超自然的能力,你信还是不信?

    当然不信了,令A=他据有超自然的能力,D=他声称他据有超自然的能力,于是(数值带入1式)

        [P(A|DB)=10^{-6}frac{1}{10^{-6}	imes 1 + (1-10^{-6})	imes 0.99}<<1]

    所以我不信。这里P(A|B)=10^{-6}:根据我的先验知识,我本来就几乎不相信,P(D|AB)=1:根据我的先验知识,如果真的他有超自然能力,他一定会这么声称的,P(D|ar AB)=0.99:根据我的先验知识,他像许多其他的半仙儿一样,在不具有超自然能力的时候声称自己有超自然的能力。

    这时候它嘿嘿一笑,掏出一份XX论文,论文中记录了他猜六面骰子读数的准确率,1000次实验全部都猜中了,并打开期刊网站证明了论文的真实性。他似乎也学过概率论的基本知识,知道如果他没有超能力的话,得到这个实验结果的概率:P(D|ar AB)frac{1}{6}^{1000},几乎为零。现在的数据变为D=他1000骰子实验全部都猜中了。那么他成功的说服你了么?就像这样?

        [P(A|DB)=10^{-6}frac{1}{10^{-6}	imes 1 + (1-10^{-6})	imes frac{1}{6}^{1000}}approx 1]

    事实证明他成功的误导了你的计算,但是他不能误导你的直觉。你感觉很奇怪,但还是不相信他。

    问题还是出在P(D|ar AB)的计算上,从上式可知,P(D|ar AB)越小,我们的P(A|DB)就越大,我们就越相信他具有超自然力。而P(D|ar AB)这个试子的意义是,在先验知识B的基础上,如果它不具有超自然力,得到实验结果的可能性。

    谁的先验知识?什么样的先验知识?

    对与我的先验知识来说,我会怀疑论文的作者伪造数据(但是他又怎么能够发表?),或者论文的作者遵守了基本的科研道德,但是这个半仙掌握了某种科学上可以解释的方法来作弊。比如令E=他掌握了一种科学上可以解释的方法来作弊,那么

    (2)   egin{eqnarray*} P(D|ar{A}B)&=&P(D(E+ar{E})|ar{A}B)\ &=&P(DE|ar{A}B)+P(Dar{E}|ar{A}B)\ &=&P(E|ar{A}B)P(D|Ear{A}B)+P(ar{E}|ar{A}B)P(D|ar{E}ar{A}B)\ &=&10^{-5}	imes 1+(1-10^{-5})	imes frac{1}{6}^{1000} end{eqnarray*}

    也就是说,根据先验知识,我相信E比A多一点P(E|ar{A}B)=10^{-5}P(A|B)=10^{-6}

    如果我有了E这个念头,那么通过计算,P(A|DB)approx 0.1,比之前他忽悠你算的小多了。但也比P(A|B)=10^{-6}要大的多了。可以想象,如果我们脑海中还有其他的想法FGH等…任何一个若他P(?|ar{A}B)>P(A|B)(如果A与E互斥,则P(?|ar{A}B)=P(?|B)>P(A|B)),这样一个小小的念想的存在都会大大的影响P(A|DB)的值。

    比起P(A|DB),我们试着来计算一下P(E|DB)

        [P(E|DB)=frac{P(D|EB)}{P(E|B)P(D|EB)+P(ar{E}|B)P(D|ar{E}B)}]

    带入上面的先验数据,并注意P(D|ar EB)有展开

    (3)   egin{eqnarray*} P(D|ar{E}B)&=&P(D(A+ar{A})|EB)\ &=&P(DA|ar{E}B)+P(Dar{A}|ar{E}B)\ &=&P(A|ar{E}B)P(D|Aar{E}B)+P(ar{A}|ar{E}B)P(D|ar{E}ar{A}B) end{eqnarray*}

    于是我们得到P(E|DB)approx 1!

    结论:半仙给出的似乎能完全说服我们相信他有超能力的证据,最终却使我们几乎确信他在作弊!其本质原因是我们的先验知识更相信后者一点,虽然只是10^{-6}10^{-5}的差别。

    所以说,你尝试去说服一个人去相信A事件,仅仅给出支持A事件的数据是不够的,还要充分考虑给出的A事件有没有同时也支持了对方先验中的C事件(就本文的例子中D对A和E的支持是相同的),如果是这样而且对方先验信息中P(C|B)>P(A|B),那么你就越抹越黑,越是提出强有力的证据就越让对方相信C而不是A!

    一个最简单的例子:P(A|DB),A=他不会来陪你是因为在外边忙工作,D=他经常很晚回家,已节哀。

    2、可以达成与不能达成的一致

    人类社会中有许多的热点问题,说他们热是因为讨论它的人比较多。如果人们在一个问题上很快的达成一致,那么就没有再过多的讨论这个问题的必要了。在 许多问题上人们立场鲜明的分成了支持与反对的两个阵营,彼此尝试说服对方。那么随着时间的流逝,人们共同见证了越来越多的与某个热点问题有关的社会现象, 大家会不会因为这些相同的数据而最终达成一致呢?概率论知识告诉我们:不一定。而生活中那些因为吵得不可开交而进入大众视野中的问题则几乎都是无法达成一 致的。与此类似的,科学家们也在不断地研究科学界的各种热点问题,那么经过足够长的时间以后,大家能不能达成对物理世界的一致认识呢?这个通常是可以的。 是什么原因造成了这样不同的两种结果呢?

    这一节与上一节讨论的问题不同之处在于,上一节是比较ACEFG等事件的P(?|DB)哪一个最大,从而选出你认为的最应该相信的事件。而这一节则着重于对一个固定的事件A,不同的人因为新加入的数据对其可能性判断的改变:P(A|DB)P(A|B)的差别。

    假如我们的数据支持A的存在,即P(D|AB)=1,那么

    (4)   egin{eqnarray*} P(A|DB)&=&P(A|B)frac{P(D|AB)}{P(A|B)P(D|AB)+P(ar A|B)P(D|ar AB)}\ &=&P(A|B)frac{1}{P(A|B)+(1-P(A|B))P(D|ar    AB)}\ end{eqnarray*}

    由于P(D|ar AB)}<1上式分母小于1,得到P(A|DB)>P(A|B),虽然两个人的先验P(A|B)P(D|ar AB)不同,这会造成他们最终的判断P(A|DB)不同。但是他们对A的可能性的改变方向是相同的。如果A确实是正确的,就会有越来越多的证据D_n出现,使得P(A|Pi D_nB)不断变大,最终大家的P(A|Pi D_nB)approx1(A是错误的同理)。科学家们正是这样达成一致的。可把这件事放到社会热点事件上为什么就不行了呢?如果一个热点事件真的存在一个对与错,按照上面的过程,大家的看法也应该越来越一致啊?

    问题出现在我们的数据D是什么。

    对于科学界,大家主要通过论文来传播和获取可信的信息,如果一个论文有陈述D=XXX,那么我们的一般来说是相信陈述D是正确的,从而P(AD|B)=P(D|B)P(A|DB)=P(A|DB),我们可以放心的把他放到条件中去。当然,论文中的错误也许在所难免——但这又给了他人发表论文反驳它的机会,就像中微子超光速事件一样,催生出了一大波论文,除了灰头灰脸的意大利人以外,借此机会发表论文的科学家们应该都在偷着乐吧^_^…

    那么对于不可信的或者说是不完全可信的信息D,我们应该如何把他加入到先验中呢?我们需要评估两个方面的东西

    1. P(D|AB):如果A是真实的,有多大的可能性会得到D数据
    2. P(D|ar AB):如果A是不真实的,有多大的可能性会得到D数据

    对于科学论文的情况,D=“实验数据表明A是正确的”,P(D|AB)对应于“如果A理论正确,他们的研究有多大的可能性得出实验数据表明A是正确的结论?”,考虑到实验中的误差等因素,这个值会很接近1,但不会是1(科学家才不给你100%的承诺的,最多给你个n个9的承诺),而P(D|ar AB)就表示“如果A理论不正确,他们的研究有多大的可能性得出实验数据表明A是正确的结论”,也就是说,这代表了他们的实验设计的有问题或者伪造数据或者作者是意大利人等等的可能性。这个可能性也不会是0,但是比1小得多。由于P(D|AB)<1P(D|ar AB)>0,我们上面的到的方向性的结论不能保证存在。但是这并不影响科学界达成一致,形成“主流”学说,因为大多数的数据都满足P(D|AB)approx1P(D|ar AB)approx0,这归功于我们现在的论文评审体系。

    而对于社会问题,P(D|AB)<1P(D|ar AB)>0就要弥散的多。我们获取数据D的方法有:电视、报纸、网络等。也就是说一些人或组织声称了一件事情的发生,但是是否相信或完全相信这个数据则因人而异。比如D=X先生声称某药品不安全,S=这个药品真的安全,现在有三个人,他们在判断P(S|DB)的过程中的各种参数为

    • P(S|B)=(0.9,0.1,0.9),即第一三个人一开始就认为这个药物大概是安全的,而第二个人并不信赖这个药物。
    • P(D|ar SB)=(1,1,1),他们都相信如果药品真的不安全的话,X先生真的会声称它不安全
    • P(D|SB)=(0.01,0.3,0.99),当药品真的安全时,第一个人觉得X先生不会说这种违心的话的,而第三个人则觉得X先生几乎一定会说谎称这个药不安全。

    带入上面的数据,我们得到P(S|DB)=(0.083,0.032,0.899),下面我们来看看这三个人为什么会得出这样的判断

    1. P的改变(0.9==>0.083):X先生是一个好人,为国家的公共卫生事业做出了很多贡献,原来我非常相信这个药物的安全性的,但是听了X先生的话以后,我再也不会购买这种药品了!
    2. P的改变(0.1==>0.032):我本来就不太相信这个药品,虽然X先生不值得完全的信赖,但是他这么说的确让我更为确信我的判断了。
    3. P的改变(0.9==>0.899):X先生是一个混蛋,他收了其他公司的钱,不遗余力的再黑这个公司的这种药物,他的陈述几乎就不影响我对这款药物的判断。

    可以看出,当P(D|AB)<1P(D|ar AB)>0的弥散很大的时候,新数据对人们的影响就没有统一的方向性,一致就很难以达成了。

    3、说得清与说不清的道理

    3.1可理解性

    由上文的分析可知,如果两个人的先验知识B不同,那即使给定相同的信息D,他们对于事件A也很有可能无法达成一致(甚至会强烈的得出截然相反的结 论)。这两个人会觉得对方“不可理解”,“颠覆三观”,“像SB一样”。而这很正常,因为这两个人的三观在这件事情上本来就有很大的分歧。倘若发生了超自 然的事件,颠倒了两个人的先验知识(三观),那么可以想像,这两个人会翻转自己的看法然后继续相互鄙视。所以说,世界上不存在“不可理解”的事件。只要一 个人不存在相关生理上的病变(或者药品的滥用等),那么他的思考方式就应该像我们上面构建的那台机器那样“随着感觉走”,他所作出的一切都是在自己三观基础上的判断,对于他本身都是再也自然不过的事情。无 论它品德高尚还是道德沦丧,无论他积德行善还是罪大恶极,他所作出的一切都是符合他自己的世界观,虽然其他的人可能觉得这件事情完全的“不可理喻”。但凡 碰到不可理解的事情,只需要简单的想像一下:“如果我是他,从小到大与他有着完全相同的经历,那么碰到他哪一种情况,我会怎么办,我会不会比他做的好,甚 至还不如他?”,这就是我们常说的“换位思考”。当然了,做到真正的“换位思考”是很难的,一个人最基本的三观不是一天两天几次交流就能形成和改变的,一 个人的阅历决定了这一切。

    因此,如果你想要说服一个人,想要让别人理解你,唯一的方法就是与他交流三观,让他跟这件事情有关的三观和你保持一致,这样的话,你不需要特意的去费心思“证明”一个事物。他会自然与你有相同的想法的。

    3.2不可接受性

    即使你可以很好的做到“换位思考”,世界上还有有很多你无法接受的事情,比如犯罪。你可以因为一个罪犯幼童时期的悲惨遭遇而同情他,甚至觉得如果你是他本人的话在那种情况甚至会犯下更为严重的罪行。但是社会是无法容忍这种犯罪行为的,因为人们都有一个共识,B_c=社会应该是安定的,我们要采取必要的行动去维持他。然后因为这样一个先验知识的存在P(惩治罪犯|B_cB)approx1就是显然的了,尽管这一种做法是可能使你觉得有某莫名的伤感。

    不可避免的,我们都处在一个个的利益集团中,首先写入我们基因中的就有B_1=我们要尽可能保证自身的利益,B_2=我 们要尽可能保证家庭的利益,这样一些先验知识可能会完全主导对一个事物的判断。我们可能对与自己利益无关的事情基于自己的先验知识做出任何种类的评价,但 是一旦涉及到自身、自己所在团体的利益,我们对外所表现出的做法就必须的被这些利益所主导,就像《亮剑》中的李云龙与楚云飞,虽然私交甚好,彼此敬重,但 战场上还是要毫不留情的消灭对方。甚至被反转,除非你消除或者削弱那些先验知识,比如韩国狗血剧中常见的门第不符的婚姻闹剧。

    有时候,我们的判断经常会被一些“身不由己”的先验知识所影响,产生“从道德上我应该这么做,但是从利益上我应该那么做”的这种令人矛盾的决定。但 这并不矛盾。因为你得到这两种不同的看法时使用的是不同的先验知识,你是两台不同的人工智能机器,一台代表超然世外的你自己,一台代表处于利益集团中的你 自己,所有的判断在你所采用的先验知识层面都是合情合理的,只是有一些你无法接受就是了。

    生活中好多事情都是可以理解但是无法接受的,但这就是生活。

    3.3客观性

    再来讨论一下我们的逻辑推理基本准则3和4

    • 如果一种感觉可以通过多种思考顺序来实现(引入不同的先验知识的顺序),那么任意一种顺序得到的感觉应该一样P(A|BC)=P(A|CB)(我中午吃A还是吃C与我想到的A与C的顺序无关,但是我必须把A与C都考虑进去了)
    • 获得对一件事物的感觉的时候必须把跟这件事物的所有相关信息都考虑进去,没有选择性的忽略

    这两者代表着客观性。

    但是从我们人类思考时的情况来说,这两者都很难完全的做到。

    首先我们的先验知识源于我们的记忆,有一些事情在我们进行思考的时候并没有被回忆起来,也就没有加入我们的进行判断的先验知识中去。其次我们进行复 杂的判断是需要精力的,有一些问题我们并不是不能想明白,而是没有“尽我们所能的”去想明白。我们也许就花费少许精力对这一个问题做出不完备的简单的判 断,然后把判断的结果存入了记忆中,下一次需要的时候直接调取记忆的结果。还有一种情况是我们不愿意去进行这个思考,可能在你调取先验知识的时候回想起了 一些不愉快、你不愿意再想到的问题。以上三种情况可以用一个人失恋时期的心里状态来举例,没有失恋过的同学也可以在恋爱的过程中找到对应。什么?你没有谈 过恋爱?那就可以把你现在的心里状态对号入座了。

    3.4混沌性

    人是一个……无法找到合适形容词的复杂系统。我们的思考过程大多数时间符合我们的基本准则,但是也许你哪一天激素分泌过剩、饮酒过量、用药不慎等就 做出了平时你不会做出的判断。除了这些外在随机的不确定性事件的影响,你对一些事物的感觉也无法强词夺理的完全用这些基本准则来解释。这些感觉源于你的直 觉,也仅仅只是你的直觉,无法解释。就像眼前的美景使你感动,耳边的歌声让你心醉,身边的姑娘令你砰然心动,记忆中的场景令你回味无穷。智慧的存在是大自 然的奇迹,我们不奢求去完全了解其中的奥秘,正是这种不确定和混沌的性质,使我们摆脱了机械论的束缚,创造了多彩的人类社会世界。

    PS:本文为E.T.Jaynes的Probability Theory——The Logic of Science(中文译名:概率论沉思录)的读后感,向E.T.Jaynes致敬!

  • 相关阅读:
    Java的静态块与实例块(转)
    Programming Ability Test学习 1031. Hello World for U (20)
    Programming Ability Test学习 1011. World Cup Betting (20)
    Programming Ability Test学习 1027. Colors in Mars (20)
    Programming Ability Test学习 1064. Complete Binary Search Tree (30)
    Programming Ability Test学习 1008. Elevator (20)
    【maven详解-生命周期】Maven的生命周期和插件
    【maven详解-插件】maven插件学习之源码插件Source Xref
    $(document).ready(){}、$(fucntion(){})、(function(){})(jQuery)onload()的区别
    你还没真的努力过,就轻易输给了懒惰
  • 原文地址:https://www.cnblogs.com/i80386/p/3685476.html
Copyright © 2011-2022 走看看