在这个世上除了我们知道的100度时水会烧开,扔块石头最终总会落到地面这些必然的事件外。其实大多数时间我们都会面临随机事件,像最常见的掷硬币时正反面总是随机出现,女孩子总有遇到渣男的概率,创业成功率等等。像现在比较火热的自然语言处理的领域,如机器翻译、语音识别、印刷体或手写体识别、拼写纠错等等,我们都需要用到概率论和一些简单的统计模型来解决问题。
概率论教学中最著名的恐怕就是掷硬币实验了,投掷一枚质地均匀的硬币,它可能出现正面,也可能出现反面,也就是说正面和反面的出现不能预知。一般人都知道掷硬币正反面出现的概率是一半一半50%,历史上的确有闲人做过掷硬币实验,结果如下。从表中可以看出,投掷次数越多,频率越接近50%。
历史上实验验结果
我想一般人是没有耐心去做这个实验的,掷四千多次,一次一秒也要一个多小时,还不包括记录的时间,像掷了几万次的那种,没有个强迫症什么的估计很难做得下来。现在的电脑程序是可以完美模拟这种实验的,以下就是用python代码写的投掷硬币的模拟程序。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import random
from tkinter import *
class Window:
def __init__(self, title='游戏', width=300, height=120, staFunc=bool, stoFunc=bool):
self.w = width
self.h