通过掷骰子进行模拟: 一枚骰子出现 1-6 各个数字的概率都是 1/6, 我们通过生成 1-6 的随机数字, 统计各个数字出现的频率是否近似这个概率.
- import random
- import collections
- '''
- 实验条件不变的条件下, 重复试验多次, 随机事件的频率近似它的频率.
- 以掷骰子为例, 1-6 出现的概率都是 1/6.
- '''
- list_num = [i*random.randint(1,6)/i for i in range(100000) if i>0]
- c = collections.Counter(list_num)
- print(c)
通过 random 模块中的 randint()生成 [1,6] 范围内的随机整数, 循环 10 万次. 通过列表解析, 生成列表.
通过 collections 中的 Couter 函数, 统计列表中相同元素出现的次数, 即 1-6 各个数字出现的次数. 返回的是字典形式的统计结果, 通过肉眼观察, 出现的次数几乎都是在 1.6 万次上.
Counter({4.0: 16786, 2.0: 16722, 5.0: 16683, 1.0: 16643, 6.0: 16635, 3.0: 16530})
出现的频率:
大数定律
来源: http://www.bubuko.com/infodetail-3445961.html