爱吱声

标题: 独角兽说概率 [打印本页]

作者: 独角兽    时间: 2014-2-24 11:27
标题: 独角兽说概率
本帖最后由 独角兽 于 2014-2-24 12:53 编辑

这几天独角兽可高兴了,就像一个遭到了表扬的好学生。突然意识到,做这些数学题是我青春常在的另一种表现呀!第一种就是儿童歌曲了。

叶子的面试题在爱坛掀起了一场小小的概率热,独角兽也想跟大家分享一下自己如何看待概率问题的。如果能对同学们在跟家里的小朋友交流概率问题时有一些帮助,那真真是极好的了。

独角兽从小就喜欢数学,不是那些枯燥的公式本身,而是数学之美,是数学思想在生活中的反射和应用。说起来很高大上,但是也可以是很简单。今天就从概率说起,从三个红包的面试题说起。

想说的太长,还是要分章节了。只对红包问题感兴趣的请跳到(二)

来召唤一下两位面试题的原作者:叶子和大师傅(@到处停留的叶子@holycow ),多年前就表扬独角兽的荷子兄 ([url=home.php?mod=space&uid=213]@荷子 ) ,用数学题搞到独角兽不吃饭的轧叔(@Highway

其他感兴趣和表扬过我的各位同学,我就不一一召唤了,免得漏下一两个。

  
作者: 独角兽    时间: 2014-2-24 11:29
标题: RE: (一)独角兽对概率的理解

独角兽不是数学或者任何会用到的相关专业,我估计自己现在的概率知识相当于高中好学生的水平。大学里那些高大上的概率课估计早就忘了。所以当大家提起条件概率的时候,我只能从字面去理解,而不确定它具体该怎么描述了。可是,我觉得,就是高中学到的概率知识已经非常足够,非常受用了。

我觉得,概率的基本在于这些关键词的意义:随机,独立事件,顺序和步骤,概率全集(就是1),概率与发生,概率与感觉(或者说错觉)。

先举概率的最简单的例子,抽奖。年会抽奖,公司100个人参加,100张奖券,其中一张有奖。学过概率的人都能接受中奖是随机的,每个人抽奖是独立的(独立事件可能不是说明这儿的,我管不了那么多了),抽奖的顺序是不影响任何一个人的中奖概率的。结论是简单的,每个人的中奖概率是1/100。

好吧,那么什么是抽奖问题的概率全集呢?100个人有一个人中奖的概率是1;某一个人中奖和不中奖的概率和是1;每一个人中奖的概率之和是1;或者还有不同的角度来看待这个简单又基本的概率问题。

好吧,假设大家是排队一个一个去抽奖的。你是第50个去抽的,结果第20个抽的人已经中奖了。有些人就会有错觉,觉得自己是排队排晚了,都没轮到抽呢,就让人抽走了。或者第一个抽的人会觉得自己抽早了,在100张奖券中选,中奖概率很低的。这些多是我们在懊恼没能中奖的时候,容易发生的错觉。而如果是大家先抽奖,然后说好了一起刮开看,懊恼自己抽奖抽早了,或者抽晚了的错觉就可能不会发生的。所以,了解随机性,甄别顺序和步骤是否有影响就很重要。

另外一个可能的步骤的影响就是,假如顺序抽奖,前10个人没抽到。你会觉得自己的中奖概率提高了。那不是说你整个抽奖过程的中奖概率提高了。而是在这次游戏的剩余部份,你的中奖概率提高了。

还有就是,如果第20个人中奖了,说的就是一个1/100的概率在这次事件中发生了,而其他99个人中奖的概率都没有发生。

以上好像是对一个很简单的问题往啰嗦了说,下面就用三个红包的面试题来说明上述啰嗦的具体化。。。

作者: 独角兽    时间: 2014-2-24 11:31
标题: RE: (二)三个红包的问题

原题由叶子提供,我抄一下:

场景是这样的:我是面试官,我准备了3个红包,其中一个有一张千元礼券,另外两个是空的。
先请你任意挑一个拿在手里。
然后,我打开剩下两个红包中的其中一个,看到是空的,于是我把它扔掉了。
然后,我对你说,现在桌上留下了一个,还有你手里的一个,你有机会改变一次主意。
这时候,你想不想换一个红包?为什么?

这题如果是概率考试,问题就是换和不换红包的概率各是多少?

同学们非常严谨,提出了一个关键的问题,面试官知不知道哪个红包有钱?

第一种情况,面试官不知道哪个红包有钱:

似乎比较容易想,那就是换不换一样,都是1/3的中奖概率。但也有同学说换与不换一样,中奖概率都上升到50%了。

虽然容易想,但我想这个问题的时候,第一直觉就是1/3的概率不变,但仔细琢磨,我把这个事情等同于另一种情景:
三个红包,一个有礼券,三个人随机选。第一个选的人叫面试者,第二个选的人叫面试官,第三个选的人叫桌子。然后面试官发现自己没中,问面试者想不想跟桌子换。面试者跟桌子的中奖概率一样,简直是非常明确的。

那50%是怎么样数字呢?是这一次概率发生在后两个人身上,把一人出局以后重新定义成游戏的起点,面试者和桌子中奖概率各为50%。就是说,从头开始想的话,还是1/3。

第二种情况,面试官知道哪个红包有钱:

有一种想法是,三个红包概率是一样的,少了一个空信封,也不可能把一个红包的概率增加呀,所以从头开始算,每个红包的概率都是1/3;从现在开始算,剩下俩红包的概率都是1/2。

从概率的角度来纠正上面的错误结论就是要指出,面试者手中的红包和桌子上剩下的红包现在是不等价的了。面试者手中就是那个三个红包中的随便一个(中奖概率1/3);而桌上的是三个红包中的随便两个,其中会中奖的那个(中奖概率2/3)。

那么我们把过程稍微变化一下,就更加容易理解了:
三个红包,一个有奖。面试者选一个,面试官选俩(虽然是人家选剩下的,可是概率与顺序无关呀)。然后面试官问,想不想用你的一个换我的俩?你肯定选换吧。然后换完之后,面试官指着其中一个说,这个可是空的呦。你会后悔换了么?反正两个里面必然有一个是空的,面试官在换之前指出来,还是换之后指出来,又有什么分别呢?(希望这样的解释,叶子家的小叶子能够更容易接受)。

我想说的是,在考虑概率问题的时候,要分清事件某个步骤的意义。比如,面试官打开一个空红包,其实是没有意义的,因为他手上两个红包里,肯定有一个是空的,没啥了不起了。重点还是他有俩红包。

作者: 独角兽    时间: 2014-2-24 11:32
标题: RE: (三)概率之外的考虑

老实说,我面对这道题直接就假设面试官是知道哪个红包有钱的,虽然不严谨,但是有道理。我之前接触这个题描述的情景好像是这样的(记错了,不负责呀):

电视节目,闯关成功者最后的大奖在三个门其中一个的后面。闯关者选择其中一个门,然后主持人把剩下两道门中的一扇空门推开,然后闯关者有机会再选一次。换还是不换?

在这个情景下,主持人当然知道哪个门是空的。这样的环节不是为了考验闯关者概率知识,其实是为了掉观众的胃口,和对闯关者多一轮的折磨。虽然2/3的概率是1/3的两倍。可是想象一下,如果你经过重重阻碍闯关成功,来到最后的大奖门前,结果你选错了。你能很理智的想到,这就是一个概率没有发生而已?你多半会非常懊恼:如果我不换(换了),那大奖就是我的了。又或者,你最后中奖了,你多半会非常自得:幸亏我换了(没换)。这就是人性的弱点,欲望绝对超越概率。

能够清醒的认识到概率就是概率,运气就是运气,生活才会少一些烦恼和失望!容我问上帝一句,北加的哪只鸟人中了上一期PowerBall的四亿呀?!!!命运太不公平了,呵呵。。。

呀,跑题了。我想说的是,如果主持人,或者面试官不知道哪个红包有钱,随便开一个,万一打开的不是空的,这游戏就提前over了,还咋考察概率知识,还咋把玩人性呢?

作者: 独角兽    时间: 2014-2-24 11:33
标题: RE: (四)面试的问题
本帖最后由 独角兽 于 2014-2-24 15:12 编辑

从叶子说的那个面试女生的反应看,我会觉得她不是一个persistent或者proactive的人。她对这个问题一时没有头绪,于是直接转向个人personality的展现。如果是我,我会更喜欢一个人想个30秒,但没有头绪,于是从头开始说,这是一个概率问题,不换的话,中奖概率是1/3, 换的话,概率好像不变(或者增加),因为。。。即便错了,她表达了她了解概率的基本意义,只是这个问题她还没有想清楚。

但是,我想说的是另一种情况,如果面试者几秒钟之内就以这样的回答开头:“换,虽然我不知道概率到底会不会增加,但是肯定不会减少。至于换和不换的概率各是多少,我是这么想的。不换1/3, 换。。。)这样的思维方式是少有的具有抓住问题的实质,能最快得到解决方案的思维类型。我觉得这样的人是非常非常少的。我自己也是先想换了概率是否增加,具体是多少概率。都解决了以后才想起来,换没有成本的情况下,就选择换呗。选择换只需确定概率不会减少就行了,而不是是否增加。而换的概率不会减少是非常明确的。

当然,如果最后再加上那个小姑娘的话,关于概率,运气,选择等等的看法。就是一个非常接地气的人才了。因为在解答了问题以后,还能再兼顾主观的,个性的东西,光有聪明的人很难做到。

最后,一个问题不能给出什么结论。也许他刚好遇到过这个问题,或者类似的问题,所以对答如流;也许他一时短路,找不到方向。当然,学统计的,搞不明白这题,我觉得还是不太好的。

我觉得自己也能做个很好的面试官。

作者: 独角兽    时间: 2014-2-24 11:35
标题: RE: (五)附加题,跑来跑去的狗狗

现在我一看见趣味数学类的题目,我要是一眼望过去没有思路,我就会问自己,如果是小学的时候,我会做么?如果是初中的时候,我会做么?如果是高中的时候,我会做么?如果都不会,我估计就歇了。实在不记得大学数学都学了啥了,呵呵。。。

下面附加题是我小学时做出来,而且是第一感觉就做出来,觉得非常自得和欣喜的题目。

A,B两地相距5公里。甲和一条狗与乙分别从A,B出发,相向而行。甲步行速度每小时5公里,乙骑车速度每小时10公里,狗每小时15公里。狗见到乙后就往回跑,见到甲后再折返去找乙。如此反复,请问甲乙相遇时,狗跑了多少公里?

做出来的同学别嫌弃这题简单,这题是小学时做的呦。。。

另外,长大了的我们有多少种方法可以做这题呢?

作者: 独角兽    时间: 2014-2-24 11:46
哈哈,沉宝同学。我骄傲的就是我讲的都没有超过高中(或者初中)的范畴。就是概率理论的入门级别。大学的我都忘了。@沉宝  
作者: coo    时间: 2014-2-24 11:47
本帖最后由 coo 于 2014-7-20 15:41 编辑


作者: 沉宝    时间: 2014-2-24 11:54
独角兽 发表于 2014-2-24 11:46
哈哈,沉宝同学。我骄傲的就是我讲的都没有超过高中(或者初中)的范畴。就是概率理论的入门级别。大学的我 ...
大学的我都忘了。
忘了才有新鲜感。常忘常新,每天都有好心情。哈哈。
作者: 不爱吱声    时间: 2014-2-24 12:39
等我回家会给出我对这道题目的最终解答。

现在只能用手机实在不方便。

简单说,在我看来这是一道别人的行动策略会影响到自己未来行动策略自己该采用和种策略的问题。希望没听明白
作者: 到处停留的叶子    时间: 2014-2-24 12:52
本帖最后由 到处停留的叶子 于 2014-2-23 23:54 编辑
独角兽 发表于 2014-2-23 22:33
从叶子说的那个面试女生的反应看,我会觉得她是一个persistent或者proactive的人。她对这个问题一时没有头 ...


给你两个小参考,第一,那个小姑娘专业是CS,不是统计,第二,那个小姑娘那天是倒数第二位被这位面试官面试的,之前还有五到六位面试过她,每次半小时,包括各种编程方面的专业题(看看神牛给人家做的题)和这个行业的一些常识题。

我觉得理解她当时的心情,已经有点累了,不太愿意想问题了。不就是一个实习职位么,随便吧,反正我是懒得换啦~~哈哈~~但是这个面试官愿意和她聊天,她就多说几句呗。。。
作者: martian    时间: 2014-2-24 13:17
独角兽 发表于 2014-2-24 11:35
现在我一看见趣味数学类的题目,我要是一眼望过去没有思路,我就会问自己,如果是小学的时候,我会做么? ...

甲乙相遇的时间为x: 5x+10x=5,x=1/3小时。
狗的速度15km,15*(1/3)=5公里。
作者: 独角兽    时间: 2014-2-24 15:16
martian 发表于 2014-2-24 13:17
甲乙相遇的时间为x: 5x+10x=5,x=1/3小时。
狗的速度15km,15*(1/3)=5公里。

松鼠和我的小学数学老师都感到很欣慰。呼叫公式达人,和编程达人用大学和计算机的方法来解题。。。
作者: 逆天废柴    时间: 2014-2-24 15:42
嗯,小老虎,我一看你写了那么多讲科学道理的文字,作为一个学渣,脑海中直接蹦出:高端大气不明白,种种畏惧情绪。

看了二当家的文章,他上来就简化了叙述,脉络很清楚,都是在捞干的,硬邦邦的,又不像轧叔他们上程序代码这种天书,所以俺说完全明白了。

等我解决了心理问题再重头看,嗯,这下涨智商啦
作者: 荷子    时间: 2014-2-24 16:04
报个到,谢谢独角兽惦记。最近太忙,很久没写什么了,看看这两天有没有时间和心情凑凑热闹。
作者: martian    时间: 2014-2-24 17:25
本帖最后由 martian 于 2014-2-24 17:29 编辑
独角兽 发表于 2014-2-24 15:16
松鼠和我的小学数学老师都感到很欣慰。呼叫公式达人,和编程达人用大学和计算机的方法来解题。。。 ...


处于计算精度的考虑,把速度换算为米/秒,保留8位小数。

public class DogSecond {

        public static void main(String[] args) {
                double distance = 5000.00;
                double time;
                double sumTime=(double) 0;
                // 甲的速度
                double ASpeed = 1.38888888;
                // 乙的速度
                double BSpeed = 2.77777777;
               // 狗的速度
                double dogSpeed = 4.16666666;

                double dogRun = 0;
               
                while(distance > 0){
                       // 狗跑到乙花滴时间
                        time = calculateTime(distance,BSpeed,dogSpeed);
                        sumTime += time;
                       
                       // 这段时间内,距离滴变化
                        distance = calculateDistance(distance,time,ASpeed,BSpeed);

                        // 狗跑到甲花滴时间
                        time = calculateTime(distance,ASpeed,dogSpeed);

                        sumTime += time;

                        // 这段时间内,距离滴变化
                        distance = calculateDistance(distance,time,ASpeed,BSpeed);

                }
               
                dogRun +=sumTime*dogSpeed;
                System.out.println("The dog has run: "+dogRun);
        }
       
        public static double calculateTime(double distance, double speedA, double speedB){
                Double time ;
                time = distance/(speedA+speedB);
                time = (double)Math.round(time*100000000)/100000000;
                return time;
               
        }
       
        public static double calculateDistance(double distance, double time,double ASpeed, double BSpeed){
                distance = distance-time*ASpeed-time*BSpeed;
                distance = Math.round(distance*100000000)/100000000;
                return distance;
        }
}

由于计算精度的问题,最终得到4999.500003584133米。

独角兽老师布置滴作业完成了

作者: 绿葱头    时间: 2014-2-24 17:35
独角兽 发表于 2014-2-24 11:31
原题由叶子提供,我抄一下:

场景是这样的:我是面试官,我准备了3个红包,其中一个有一张千元礼券,另外 ...

说的很明白
一般来说,面试官应该知道哪个里面有红包的,因为他包的么。
我知道从正确角度讲应该换,1/3和2/3的概率没有问题。
可是脑子里另一个声音说1/2,1/2也没有问题啊,后来想通了:主要是样本空间弄错了,因为对面试者来说一开始是“随机的”放进三个包里,所以1/3概率抽到,这个没有问题,误认为钱是“随机的”放在“变化后”的两个包里就有问题了。
作者: 常挨揍    时间: 2014-2-24 21:21
独角兽 发表于 2014-2-24 11:31
原题由叶子提供,我抄一下:

场景是这样的:我是面试官,我准备了3个红包,其中一个有一张千元礼券,另外 ...
第一个选的人叫面试者,第二个选的人叫面试官,第三个选的人叫桌子

这样表述是内啥不咋对的,实际上第二个选和第三个选是可以颠倒的
作者: njyd    时间: 2014-2-24 21:50
coo 发表于 2014-2-24 11:47
三个包的时候坚持不换还是有相当机会的。10个包的时候不换就有点不明智了。 ...

我认为是一回事。
主持人知道的话,不管有多少个,所有被翻开的包初始概率都是0,实际就是最后两个包的对决。
作者: 一瞬无尽    时间: 2014-2-24 22:07
独角兽 发表于 2014-2-24 11:35
现在我一看见趣味数学类的题目,我要是一眼望过去没有思路,我就会问自己,如果是小学的时候,我会做么? ...

看谁的传记里说,有一物理牛人被人在宴会上问到这题,唰,正确答案就给出来了
那人“PF呀PF,一般人都是拿无限级数算,半天都算不出来”
牛人说:我就是这么算的呀!
作者: 张声语    时间: 2014-2-24 22:23
一瞬无尽 发表于 2014-2-24 22:07
看谁的传记里说,有一物理牛人被人在宴会上问到这题,唰,正确答案就给出来了
那人“PF呀PF,一般人都是 ...

不是物理牛人,是von Neumann。别人问他这个问题以后,他瞬间给出答案了。提问的人就很失望,说,你一定知道那个计算诀窍吧。结果Neumann说,啥诀窍?我就是把狗每次跑的都算出来,然后算出那个无穷级数。同样的事情也发生在苏定青身上。
作者: sylvia    时间: 2014-2-24 22:25
独角兽原来是用数学当面膜保青春的啊?佩服佩服!
你的逻辑很清楚,写文章一定好。
我和小叶子一样的水平,被你修理清楚了。。。。
作者: 然后203    时间: 2014-2-24 22:32
独角兽 发表于 2014-2-24 15:16
松鼠和我的小学数学老师都感到很欣慰。呼叫公式达人,和编程达人用大学和计算机的方法来解题。。。 ...

最怕小学数学了。现在看小学数学题目还有一种恐惧感。

小学时候看到这种题目,都要埋怨那个吃饱了的出题人。
作者: 江小鱼    时间: 2014-2-25 01:12
真是智慧与美貌并存的好同学啊.
再讲讲你咋解决神牛的那个开门,关门的问题的.
作者: tanis    时间: 2014-2-25 01:29
张声语 发表于 2014-2-24 22:23
不是物理牛人,是von Neumann。别人问他这个问题以后,他瞬间给出答案了。提问的人就很失望,说,你一定 ...

他也算个物理牛人?
作者: 张声语    时间: 2014-2-25 01:37
tanis 发表于 2014-2-25 01:29
他也算个物理牛人?

必须不是啊,他是数学家啊,只不过是以数学家滴身份搞了搞计算机
作者: tanis    时间: 2014-2-25 01:44
张声语 发表于 2014-2-25 01:37
必须不是啊,他是数学家啊,只不过是以数学家滴身份搞了搞计算机

好像对量子力学有些贡献~ 记得当时老师教的时候就调侃这个天才,而且他们家好像还出了几个牛人。 那个无穷级数的故事我是从物理课上听来的啊~~
作者: 牛腰    时间: 2014-2-25 01:48
本帖最后由 牛腰 于 2014-2-25 02:13 编辑
张声语 发表于 2014-2-24 22:23
不是物理牛人,是von Neumann。别人问他这个问题以后,他瞬间给出答案了。提问的人就很失望,说,你一定 ...


苏步青?一开始看成苏定方了:)
作者: 牛腰    时间: 2014-2-25 02:03
独角兽 发表于 2014-2-24 11:35
现在我一看见趣味数学类的题目,我要是一眼望过去没有思路,我就会问自己,如果是小学的时候,我会做么? ...

用无限级数也可以做。5/(10+15)=0.2小时以后狗见到乙,这时狗跑了3公里,和甲的距离是0.2*(15-5)=2公里。狗再跑2/(5+15)=0.1小时碰到甲,狗又跑了1.5公里。

这个时候,狗一共跑了4.5公里,甲、乙、狗的状况和开始时一样,只是甲乙之间的距离从5公里变成了5-(5+10)*0.3=0.5公里,是原来距离的0.1。

无限级数的和就是4.5/(1-0.1)=5公里。
作者: 张声语    时间: 2014-2-25 03:32
tanis 发表于 2014-2-25 01:44
好像对量子力学有些贡献~ 记得当时老师教的时候就调侃这个天才,而且他们家好像还出了几个牛人。 那个无 ...

数学家对物理有贡献太正常了,爱因斯坦做相对论时候,黎曼几何都是他的数学家朋友教的,爱因斯坦去哥廷根做了几次报告以后,Hilbert就给把那个场方程算出来了。
作者: tanis    时间: 2014-2-25 03:42
本帖最后由 tanis 于 2014-2-25 03:46 编辑
张声语 发表于 2014-2-25 03:32
数学家对物理有贡献太正常了,爱因斯坦做相对论时候,黎曼几何都是他的数学家朋友教的,爱因斯坦去哥廷根 ...


Hilbert就是推公式啦~ 诺依曼做的还是比那个进一步的,贡献多了就也被称作物理学家了~~ 好比大多数搞数学的尤其是纯数的,看到bra,kit就崩溃了,恩不严密~ 如果能懂点儿这里面的物理意义再推出啥的话就可以往物理学家靠了~~
作者: 独角兽    时间: 2014-2-25 04:46
常挨揍 发表于 2014-2-24 21:21
这样表述是内啥不咋对的,实际上第二个选和第三个选是可以颠倒的

同学,第一回讲的就是随机抽奖与顺序无关的。

我这样讲是对应的,面试者选了一个红包,面试官选了一个红包,剩下一个在桌子上。等同于三个人排队抽奖。与抽奖顺序无关,与开奖顺序也无关呀。
作者: 独角兽    时间: 2014-2-25 04:51
张声语 发表于 2014-2-24 22:23
不是物理牛人,是von Neumann。别人问他这个问题以后,他瞬间给出答案了。提问的人就很失望,说,你一定 ...

呵呵,像我这样的优秀小学生,看了这个故事首先想到的是问问上帝,这孙子不是装的吧?用小学方法算,然后说是用级数算的,以惩罚提问的人这么naive。居然问数学家这种小学题目。

我一个普通人是理解不了天才的

作者: 独角兽    时间: 2014-2-25 04:59
martian 发表于 2014-2-24 17:25
处于计算精度的考虑,把速度换算为米/秒,保留8位小数。

public class DogSecond {

松鼠同学是个好同学。独角兽不懂编程,感性的评论一下,觉得差0.5米误差太大了,对于编程而言。我一会儿也另开一贴全面说一下狗狗跑来跑去的问题。
作者: 张声语    时间: 2014-2-25 06:09
tanis 发表于 2014-2-25 03:42
Hilbert就是推公式啦~ 诺依曼做的还是比那个进一步的,贡献多了就也被称作物理学家了~~ 好比大多数搞数学 ...

这。。。也可以这么说吧,像牛顿这样,也是通吃的。

搞纯数学滴看到bra才不会崩溃呢,基本上搞纯数学不会改变其本身滴色狼品质。
作者: 张声语    时间: 2014-2-25 06:09
独角兽 发表于 2014-2-25 04:51
呵呵,像我这样的优秀小学生,看了这个故事首先想到的是问问上帝,这孙子不是装的吧?用小学方法算,然后 ...

总之,问问题滴人实在是太倒霉了
作者: zeal_zhang    时间: 2014-2-25 10:27
martian 发表于 2014-2-24 17:25
处于计算精度的考虑,把速度换算为米/秒,保留8位小数。

public class DogSecond {

我感觉time = (double)Math.round(time*100000000)/100000000;

distance = Math.round(distance*100000000)/100000000;
里边的Math.round 不需要
我去掉之后把循环里边distance > 0改成distance > 0.001得到的结果是5000




欢迎光临 爱吱声 (http://129.226.69.186/bbs/) Powered by Discuz! X3.2