|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 不二如是 于 2019-8-23 14:29 编辑
最近看闲书,遇到了一个抛硬币实验很有意思,拿程序简单模拟了一下。
这么简单的事物,我们却存在偏见。
我们可怜的大脑,被误以为太厉害了,最近完结的思维(意识)的#七宗罪有兴趣的鱼油可以去了解下~
好了,言归正传,这个实验是这样的:
有一个统计学教授,在第一堂课上,给学生布置了个作业。
要求大家做一件特别乏味的工作,拿出一枚硬币,连扔200次,然后记下结果,正面还是反面,仔细记录。
教授提醒说:“你们可别造假,造假我可看得出来。”
学生们以为教授只是在吓唬人,没当回事。
对啊,什么叫连续扔硬币,不就是搞一个随机数嘛。
随机数就是没有规律的数啊,我们就编一个没有规律的结果不就行了吗?
这是人之常情嘛,所以手动胡乱写200个很方便有木有。。。
果然有学生偷懒,没有老老实实地去掷200次硬币,而是编了个记录表交差了。
奇怪的是,教授果然一眼就能识别出哪些学生偷懒了,没有真的扔硬币。
那教授怎么发现的?
魔鬼在细节
很简单,如果是我们偷懒怎么搞?
胡编一个记录,只要正反都有就得了~
就像这样:
如果只是胡乱的看看,那确实没问题,但是作为逻辑性思维很强的统计学教授一看就知道大有问题!
教授之所以一眼看出来是假的,就是因为这个记录表编造得太“随机”了。
造假者认为,只有这样才符合掷硬币这种“随机现象”的特征。
他们会极力避免连续出现多次同样的结果。
让我们暂停一下,鱼油刚才是不是也是这么认为的呢?
揭开真相
他们认为,那样“太不随机”了。
实际上,如果你真去老老实实地掷200次硬币,而记录下来,就会发现:
真正的结果会像这样:
其实,懂概率的人稍稍计算一下,就能解释这个现象。
你扔10次硬币,结果都是正面的概率很小,只有1/1024(1/(210)),是极小可能性,可当掷的次数足够多的时候,情况就不一样了。
公式:
- f(n<k) =0
- f(k) = 1/(2^k)
- f(n+1)= f(n) + [1-f(n-k)]/[2^(k+1)], n>k
复制代码
有兴趣的鱼油可以写一个递归脚本算一算。
如果掷上700次,那连续10个正面出现一次的概率就达到约29%。
如果掷上5000次呢?
连续10个正面出现的概率达到了91.37%;
如果掷上1万次,概率为99.99%,这时,几乎可以确定,一定会出现连续10个正面。
那么回到最初的问题,200次,连续出现5,6次同样的状况,概率是多少呢?
还有一种比较好理解的反证法。
连续抛硬币6次,6次都出现同面的概率为1/2的5次方,等于3.125%。
所以,一次尝试抛不出连续6个同面的概率是1-3.125%=96.875%
第一次没有抛出6个同面,硬币已经抛过了6次,我们还有194次机会尝试。
所以,可以得出连续抛硬币200次,相当于195次尝试抛出6个同面的机会,那么抛不出6个同面的概率就是96.875%的195次方,等于0.002 05。
用1减去0.002 05就是抛200次硬币,出现连续6个同面的概率:0.998约等于99.8%
这意味着什么?
意味着:
鱼油不信是吧,来一段简单的JS代码,验证一下:
- // 模拟200次
- for(var i = 1 ; i < 201 ;i++)
- {
- coinToss();
- if((i % 20) == 0)
- {
- document.write("<br><br>");
- }
- }
- function coinToss() {
- // 随机数产生正反
- var result = Math.floor(Math.random() * 2);
- if(result == 0)
- {
- result = '正面';
- }
- else{
- result = '反面';
- }
- document.write(result+" ");
- }
复制代码
看到了不?!
随便一次,结果中就有连续相同的结果,5-7次。
源码(回复“我爱鱼C”):
所以,教授布置的作业很狡猾,他是让你掷硬币200次,其中一定会出现连续5-7次相同的情况。
如果看不到这种情况,看到的只要是更乱、更随机的记录结果,不用问啊,那就是学生偷懒造的假啊。
吹水
苏格拉底说过很多名言,其中这一句很适合今天的帖子:
对于我们现在身处的时代,混乱无序中追求一种平衡,不管什么时代打麻将,可能都会发生:
一会儿手气特好,一会儿手气特差,好像麻将后面有鬼。就是打牌的时候,好像牌后面有人操纵。
这就是这个随机世界中的必然结果,当然等发生了再回看的必然,也没有多大意义。
但是,作为程序员我们可以这个鬼揪出来!
简单的一计算概率,大体赢面输面自然知晓。
而不是通过通过各种仪式,比如摸牌的姿势来讨好这个鬼。
所以麻将桌上也是特别容易诞生迷信的地方。
迷信和科学其实都是在找规律,只不过,科学讲究方法和证据,而迷信是一通胡来。
迷信的反义词是什么呢?
从上面来看那就不是科学了,是啥呢?
是承认不确定性,是承认随机性,承认有些东西不可解释,不可预测,并且欣然接纳它带来的结果。
所以,为什么程序员的认知能力都不错呢,因为能靠代码养活自己已经具备了如下两个条件:
所以用代码思考自己的人生,还是很有意思的不是吗?!
之前在隔壁 JS 系列也写过一个双色球的代码,有兴趣的鱼油自行围观。(传送门)
预知更多神文请看:
如果喜欢,别忘了评分 :
如此多懂学习的 VIP至尊都 已订阅本专辑,你还不快点行动!( ☞订阅传送门 ) |
评分
-
查看全部评分
|