栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

通过模拟200万次扔硬币得到的概率分布曲线(近似正态分布)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

通过模拟200万次扔硬币得到的概率分布曲线(近似正态分布)

定义扔一百次硬币为一组实验。

该代码统计了做两万组试验后,每组实验内正面朝上的频数分布。

目前尚未增加横纵坐标单位长度(有机会更新)。

基于pygame模块。

代码如下:

import pygame, sys
import random
import math 
pygame.init()
screen = pygame.display.set_mode([1000,480])
screen.fill([255,255,255])
plotPoints = []
xaxis = [[0,240],[1000,240]]
yaxis = [[500,0],[500,480]]
pygame.draw.lines(screen,[0,0,0],False,xaxis,1)
pygame.draw.lines(screen,[0,0,0],False,yaxis,1)

pairs = {}
for experimentTimes in range(0,20000):
    n = 0
    for throwTimes in range(0,100):
        k = random.randint(0,1)
        if k == 1:
            n += 1
    if not n in pairs.keys():
        pairs[n] = 1
    elif n in pairs.keys():
        pairs[n] += 1
plotPoints = []
for j in pairs.keys():
    position = []
    position.append(j*10)
    position.append(int(-pairs[j]*0.1)+240)
    plotPoints.append(position)
plotPoints.sort()
pygame.draw.lines(screen,[0,0,0],False,plotPoints,1)
pygame.display.flip()
running = True
while running :
    for event in pygame.event.get():     
        if event.type == pygame.QUIT:
            running = False
pygame.quit()

运行效果如下:

 每一次运行效果都略有差异。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/977221.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号