01 概率论的开端

概率论是一门源自生活的学科,但是,直到1654年,帕斯卡和费马才开始对概率论进行实质性的研究,也标志着概率论正式的成为了数学的一个分支。

人们最早熟悉和认识到概率是从身边的等可能事件开始的,比如:抛硬币,掷骰子等。正因为如此,赌徒对概率论的发展起到了不可磨灭的贡献。

时间回到1654年,梅内骑士(Chevalier de Méré)是一个资深赌徒。别看他名字里有骑士,但是他并非出身贵族。梅内骑士是一位作家,喜欢在自己的文字中称呼自己为梅内骑士(他曾在梅内学习)。久而久之,他的朋友们就称呼他为梅内骑士了。其中,也包括大数学家帕斯卡。准确的说,帕斯卡和梅内骑士是赌友。

帕斯卡

梅内骑士可能平时输钱比较多,所以痛定思痛,非常注重赌局问题的思考。他曾经向帕斯卡请教过一些问题,比较出名的是点数问题。点数问题:

有两个人A和B对赌,每人各下注32个硬币,一共64个硬币。A和B商定,一局游戏谁赢了谁就记一分。先累计到三分的一方获胜,赢得所有的硬币。

梅内骑士的问题是,如果突然发生了一些情况,赌局被迫结束。这时候,A已经赢了两场,积两分;B只赢了一场,积一分。那么,64个硬币应该怎么分?

帕斯卡觉得这个问题很有意思。他和自己的朋友费马(号称“业余数学之王”,提出了费马大定理)进行了多次书信交流,并都给出了解答的思路。

02 等可能概型

概率论最先研究的就是等可能概型,如抛硬币和掷骰子。在可能概型中,所有结果出现的可能性都是相等的。比如说,抛硬币只会出现正面和反面(别起哄,说可能竖起来),掷骰子只会有1到6六个面。所有可能结果的结合,概率论中叫样本空间。每一种结果就是一个基本事件。每个基本事件由于发生的可能性相等,则概率P = 1 / n。其中,n是所有基本事件的个数。

以抛硬币为例,假设这个硬币是均匀的。抛硬币出现正面或者反面的概率都是0.5。这个假设很重要,现实生活中,硬币或多或少都不规则,出现正反的概率都不会正好是0.5。

硬币正反面理论值

我们都知道,抛一次硬币不是出现正面,就是反面。但是,如果抛100次硬币,正面和反面出现的可能性会怎么样变化呢?下面我们利用python做一个动图。

#作者:逃学博士,转载请注明出处head_prob = 0.5trial_times = 100head = 0def get_plot(times): ax.clear() global head, head_prob if random.random() <= head_prob: head += 1 x = [1, 2] head_exp_prob = np.round(head/times, 2) prob_exp_dist = [head_exp_prob, 1-head_exp_prob] ax.bar(x, prob_exp_dist, width=0.5, color='#00d0a1') for i in range(len(x)): ax.text(x=x[i]-0.04, y=prob_exp_dist[i]+0.04, s=np.round(prob_exp_dist[i], 4), size=10) ax.set_title('试验概率') ax.set_ylabel('概率') ax.set_xticks(x) ax.set_xticklabels(['正面', '反面']) ax.set_ylim((0, 1.2)) anim = animation.FuncAnimation(fig, get_plot, frames=list(range(1, trial_times)))anim.save('flip_coin.gif', writer='pillow')

100次抛硬币正反出现概率

当我们连续抛一百次硬币,正反面出现的概率就非常接近理论值了。同时,这个过程反过来也可以检验硬币是不是均匀,抛硬币是不是公平。

被动过手脚的硬币,正面出现概率为0.7

当你统计后发现,抛硬币正反概率如上图所示,你就可以自信的说这个硬币有问题。

不要以为这没啥用,如果有一点你发现赌场里的一个骰子出现6的概率特别高,而统计结果证明了你的猜想。那么,你就可以赢钱了。

03 数学期望

其实,数学期望已经包含在帕斯卡和费马解决点数问题的思路里了。当时,费马收到帕斯卡的来信之后,针对点数问题给出了如下的解答:

费马的解答:

费马想A和B谁先累计到3分就算赢。现在,A积2分,B积1分。也就是说,赌局一定在接下来的两局之后结束。不管是A赢一局,还是B连赢两局。

这样说来,这两局比赛可能出现的结果是,第一局A赢,第二局也是A赢(虽然第一局A赢,A已经到3分了),记做AA,其他情况是AB,BA,BB,一共四种情况。

费马想,四种情况中,出现AA,AB和BA这三种情况,都是A赢,只有BB一种情况,B才能赢。那么,赌局中途结束的话,A应该拿64 * 3/4 = 48个硬币,B拿16个硬币。

帕斯卡的解答:

不同于费马,帕斯卡从另外一个角度给出了解答,也隐藏了一个重要的概念:数学期望。

帕斯卡想:接下来的第一局,如果A赢了,则A拿走全部64个硬币,B拿0个硬币。如果B赢了,则A和B各积两分,这时候比较中断,A和B应该平分硬币,各拿32个。也就是说,第一局游戏不管怎么样,A一定可以拿32个硬币。

第二局,A和B谁赢就可以拿走32个硬币。而A和B的胜率均为50%。那么,A和B应该平分这32个硬币。所以,A总共应该拿32 + 16 = 48个硬币,B拿16个硬币。

04 掷骰子的数学期望

数学期望反映的是随机变量平均取值的数学特征,公式如下。文字表述就是所有可能出现的结果与出现的概率乘积的和。

拿掷骰子举例,总共可能出现的情况有6种,1到6个数。而每个面出现概率都是1/6。

掷骰子

根据公式,数学期望 = 1/6 * (1 + 2 + 3 + 4 + 5 + 6) = 3.5。 那么,当我们连续掷骰子两百次,得到的平均数是不是3.5呢?

200次掷骰子

我们可以看到,在开始的10几次掷骰子之后,骰子的平均数波动很大。但是随着掷骰子次数增加,骰子的平均值则趋近3.5了(图中红线)。

05 结束语

概率论、数学以及其他任何学科,都是一代一代人的智慧。而我们在学习知识的时候,去了解知识点背后的历史,这样对于理解学科的精髓注意良多。

技术的发展以及可以让我们不用通过大量重复的试验,而通过编程去可视化知识点了。我们应该多多利用这些工具来帮助学习。如果你没有把这个基本的,但有些不那么自然的基础数学概率方法变成你生活的一部分,那么在漫长的人生中,你们将会像一个踢屁股比赛中的独腿人。这等于将巨大的优势拱手送给了他人。

—— 查理.芒格

查理.芒格提到了100多种思维模型,而帕斯卡-费马系统也在其中。最基本的概率论知识同样蕴含着无穷的魅力。

python概率游戏_看得见概率,可视化讲解概率学基础(附带python代码)相关推荐

  1. python学英语游戏_美国大佬推荐,一边玩一边学Python编程,12个游戏轻松掌控Python...

    你还在坚持Python编程吗?如此枯燥的学习方式,靠自己的意志真的能坚持到最后吗? 放弃吧!与其辛苦的执着,不如看美国大佬推荐的Python编程闯关游戏,一边学编程一边玩游戏,以后连"吃鸡& ...

  2. 《看聊天记录都学不会Python到游戏实战?太菜了吧》(2)在python中加号竟然如此善变

    本系列文章将会以通俗易懂的对话方式进行教学,对话中将涵盖了新手在学习中的一般问题.此系列将会持续更新,包括别的语言以及实战都将使用对话的方式进行教学,基础编程语言教学适用于零基础小白,之后实战课程也将 ...

  3. 我的世界python写游戏_用python写游戏之 Give it up

    <永不言弃 Give It Up>,这是一款极具虐心色彩的音乐题材闯关游戏. 这篇文章就来分析这款游戏原理,并用python写出来一个简易版.废话不多说,直接开始分析. 游戏元素,暂且把主 ...

  4. python quit()讲解_看完本文若不能让你学通“Python”,我将永远退出编程界

    许多时候,学习过后的效果不好,可能是一些坏习惯自己还没有意识到!这篇文章教程希望可以给各位一些学习效率高坚持到底的勇气 01 学习上不明白自己要干什么.该干什么,总是让老师在后面推着屁股走.自学的朋友 ...

  5. python html5游戏_【Python】Python制作塔防小游戏

    开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 原理介绍 游戏规则简介: 玩家通过建造箭塔抵御敌人的进攻. 每隔一段时间,将会有一波 ...

  6. python画菊花_网传“菊花厂月薪13K”15道硬核Python面试题,值得一看!

    见过面试题也不少了,总之了一句话:面试前备好功课,面试中临危不乱,面试后谦虚有礼!这只是我本人总结的一些面试三要素,需要的可以参考参考,话不多了,今天为大家找了网传菊花厂比较硬核的15道面试题,希望能 ...

  7. python本科生就业_准备报学习机构学习大数据、Java或者python,是计算机专业的本科生,请问选择哪种就业发展比较好?...

    谢邀.对比java和python后者还算是小语种.不知道楼主的具体情况如何.根据个人情况,建议先学java,毕竟你目前的需求是尽快找到更合适的技术工作,java择业面相对较宽,虽然也难学,但学习资源丰 ...

  8. python open函数_精选2个小例子,带你快速入门Python文件处理

    阅读本文大概需要7分钟讲完了函数和模块,我们来讲一讲文件的使用,python对数据的处理分两种一种是本地文件的处理,另外一种是通过网络数据处理(也就是爬虫相关的).而本地的数据处理,主要是通过文件的读 ...

  9. python 青少年人工智能_青少年人工智能教育的典范 优必学教孩子用Python编写一部人工智能的字典...

    Python是一种计算机程序设计语言,是一种动态的.面向对象的脚本语言,最初被设计用于编写自动化脚本.从20世纪90年代初诞生至今,Python正在迅速成为全球大中小学编程入门课程的首选教学语言,这种 ...

最新文章

  1. django基础(一)
  2. 一高校公示拟聘用人员信息,多为大龄“双非”土博,好像也没那么卷……
  3. 切割图形_泉州泡沫景观字切割机厂家
  4. Windows XP减肥法
  5. a simple introduce to arontab
  6. filezilla 共享多个目录_Linux下搭建NFS文件共享服务器
  7. 浏览器的“sleep”
  8. UVa 11078 - Open Credit System
  9. Linux系统Load average负载详细解释
  10. 基础知识:Mac上更改“字体”窗口中的字体大小
  11. CCS软件的C语言取模注意点
  12. win10如何强制删除文件
  13. kindle 4 简易电子书格式转换(txt转mobi)
  14. PTA 数据库 mysql 10-198 C1-2新增订单统计信息
  15. excel随机数_Excel使用小技巧-Excel里快速生成随机数
  16. SEO入门一篇就够-SEO教程
  17. 松下gh6参数 松下gh6评测
  18. Teardrop代码编程,创建虚假包
  19. 点击修改用户图像php类,php修改图像
  20. 判断质数和合数的java_质数与合数知识点总结(质数和合数的知识点)

热门文章

  1. 腾讯面试题: 百度搜索为什么那么快? | 原力计划
  2. ​苹果WWDC20确定6月22日线上举办;任天堂遭史上最大规模黑客攻击 ;Inkscape 1.0 发布 | 极客头条...
  3. Namebase 给 GitHub 开发者白送钱,是拉新还是投资骗局?
  4. 微信回应发原图泄露位置信息;华为员工索要离职补偿被起诉;Windows Terminal v0.7 发布 | 极客头条...
  5. PHP 没有真正的数组!
  6. Linux 超全实用指令大全 | CSDN 博文精选
  7. 漫画算法:5 分钟搞明白红黑树到底是什么?
  8. Python 爬取 50,000 条数据,告诉你五一哪里没有人人人人!(内附折扣景点列表)...
  9. C++ 20 进入倒计时,有哪些值得期待的新特性?
  10. 百度进军游戏;腾讯起诉抄袭者;苹果急撤 watchOS 5.1 更新 | 极客头条