【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟

这篇具有很好参考价值的文章主要介绍了【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟

一、实验目的

1.通过抛硬币实验来验证频率具有稳定性。

2.学会使用Python作图。

二、实验要求

1.复习大数定律。

2.画图显示运行结果。

三、实验内容

利用Python编写程序,以产生一系列0和1的随机数,模拟抛硬币实验。验证抛一枚质地均匀的硬币,正面向上事件频率的稳定值为0.5。

四、实验步骤

(1)生成0和1的随机数序列,将其放入列表count中,也可用函数表示。

(2)统计0和1出现的次数,将其放入a中。a[0]、a[1]分别表示0和1出现的次数。

(3)画图展示每次实验正面向上事件的频率。

# 方法1:使用Counter函数进行计数
from collections import Counter
import matplotlib.pyplot as plt
import random
from time import perf_counter

start=perf_counter()       #计时开始
times = 10000
count = []  # 将每次随机出现的数字放入列表
for i in range(1, times+1):
    y = random.randint(0, 1)
    count.append(y)
#统计0和1出现的次数,计算频率,1表示正面向上 
#直接统计每个数字出现的次数,a[0],a[1]分别表示0和1出现的次数
a = Counter(count) 
f1=a[1]
print(f1/times)

#画图展示每次实验正面向上出现的频率
f = []  #存储朝上的频率
indices=[]
#i表示做的试验次数
for i in range(1,times+1):     
    heads = 0   #做i次试验正面向上出现的次数
    for j in range(i):
        if count[j]==1:
            heads+=1    
    f.append(heads/i)   #计算频率    
    indices.append(i)   #第i次试验

#作图
plt.figure(figsize=(18, 8))
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
plt.xlim(0, times)
plt.ylim(0, 1)
plt.plot(indices,f)
plt.plot([0,times],[0.5,0.5],color='r')
plt.text(0,0.5,'0.5',color='r',fontsize=16)
plt.xlabel('试验次数')
plt.ylabel('频率')
plt.show()
print("运行时间是: {:.5f}s".format(perf_counter()-start))
0.5026

【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟,其他,python,概率论

运行时间是: 4.40956s

结论:当实验次数足够大时,正面向上事件的频率稳定在0.5附近。

# 方法2:不使用Counter函数进行计数
import matplotlib.pyplot as plt
import random
from time import perf_counter

start=perf_counter()       #计时开始
times = 10000
count = []  # 将每次随机出现的数字放入列表
for i in range(1, times+1):
    y = random.randint(0, 1)
    count.append(y)
#统计0和1出现的次数,计算频率,1表示正面向上    
s1=0
s2=0
for k in count:
    if k ==0:
        s1+= 1
    else:
        s2+=1
f1=s2
print(f1/times)
#画图展示每次试验正面向上出现的频率

f = []  #存储朝上的频率
indices=[]
#i表示做的试验次数
for i in range(1,times+1):     
    heads = 0 #做i次实验正面向上事件的次数
    for j in range(i):
        if count[j]==1:
            heads+=1    
    f.append(heads/i) #计算频率    
    indices.append(i)   #第i次试验
    
#作图
plt.figure(figsize=(18, 8))
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
plt.xlim(0, times)
plt.ylim(0, 1)
plt.plot(indices,f)
plt.plot([0,times],[0.5,0.5],color='r')
plt.text(0,0.5,'0.5',color='r',fontsize=16)
plt.xlabel('试验次数')
plt.ylabel('频率')
plt.show()
print("运行时间是: {:.5f}s".format(perf_counter()-start))
0.5011

【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟,其他,python,概率论

运行时间是: 4.40306s
# 方法3:自定义函数
import matplotlib.pyplot as plt
import random
from time import perf_counter

#返回0或者1
def r():
    s=random.randint(0,1)
    return s

start=perf_counter()       #计时开始
times=5000
indices=[]
f = []   #存储朝上的频率
for i in range(1,times+1):    
    heads = 0  #做i次实验正面向上事件次数
    for j in range(i):
        if r() == 1:
            heads+=1
    f.append(heads/i)
    indices.append(i)
print(heads/times)

#作图
plt.figure(figsize=(18, 8))
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
plt.xlim(0, times)
plt.ylim(0, 1)
plt.plot(indices,f)
plt.plot([0,times],[0.5,0.5],color='r')
plt.text(0,0.5,'0.5',color='r',fontsize=16)
plt.xlabel('试验次数')
plt.ylabel('频率')
plt.show()
print("运行时间是: {:.5f}s".format(perf_counter()-start))
0.5034

【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟,其他,python,概率论

运行时间是: 9.23432s
# 方法4(向量化思维)
import numpy as np
import matplotlib.pyplot as plt
from time import perf_counter

start=perf_counter()       #计时开始
coin=[0,1]     #1-正面,0-反面
sim=10000      #模拟次数
t=np.zeros(sim) #存储每次抽样的结果
f=np.zeros(sim) #存储朝上的频率
for i in range(sim):
    a=np.random.choice(coin,1)    #抽样
    t[i]=a==1
    f[i]=np.mean(t[0:i+1])
print(np.mean(t))
indices=np.arange(1,sim+1)

#作图
plt.figure(figsize=(18, 8))
plt.rcParams['font.sans-serif'] = 'SimHei'  # 设置中文显示
plt.rcParams['axes.unicode_minus'] = False
plt.xlim(0, sim)
plt.ylim(0, 1)
plt.plot(indices,f)
plt.plot([0,sim],[0.5,0.5],color='r')
plt.text(0,0.5,'0.5',color='r',fontsize=16)
plt.xlabel('试验次数')
plt.ylabel('频率')
plt.show()
print("运行时间是: {:.5f}s".format(perf_counter()-start))
0.5087

【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟,其他,python,概率论文章来源地址https://www.toymoban.com/news/detail-720586.html

运行时间是: 0.31413s

到了这里,关于【基于Python的概率论与数理统计实验】实验1_抛硬币实验的模拟的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【概率论和数理统计-基本概念】

    自然界的 现象 分为两类,一类是 确定现象 ,如正负电荷的吸引;一类是 随机现象 ,如抛硬币出现正负。 研究后发现,随机现象也有 统计规律性 。 随机试验 随机现象(通过随机试验,来研究随机现象。) 样本空间 样本点 随机事件(特定情况下,样本空间的一个子集。

    2024年02月03日
    浏览(41)
  • 概率论与数理统计期末复习

    泊松分布 连续性随机变量概率密度 概率密度积分求分布函数,概率密度函数积分求概率,分布函数端点值相减为概率 均匀分布 正太分布标准化 例题 离散型随机变量函数的分布 概率密度求概率密度 先积分,再求导 例题 二维离散型随机变量的分布 联合分布律 离散型用枚举

    2024年02月08日
    浏览(37)
  • 概率论与数理统计:第一章:随机事件及其概率

    ①古典概型求概率 ②几何概型求概率 ③七大公式求概率 ④独立性 (1)随机试验、随机事件、样本空间 1. 随机试验 E 2. 随机事件 A、B、C ① 必然事件 Ω : P ( Ω ) = 1 P(Ω)=1 P ( Ω ) = 1 ② 不可能事件 Ø : P ( Ø ) = 0 P(Ø)=0 P ( Ø ) = 0 3.样本空间 ① 样本点 ω = 基本事件 ② 样本空间

    2024年02月14日
    浏览(36)
  • 概率论与数理统计基础知识

    本博客为《概率论与数理统计--茆诗松(第二版)》阅读笔记,记录下来,以便自用。 连乘符号: ;总和符号: ;正比于: ∝ ;“任意”符号:∀;“存在”符号:∃; 随机现象所有基本结果的全体称为这个随机现象的基本空间。常用Ω={w}表示,其中元素w就是基本结果

    2024年02月09日
    浏览(37)
  • 概率论与数理统计思维导图

    2024年02月11日
    浏览(35)
  • 概率论与数理统计常用公式大全

    A − B = A − A B = A B ‾ B = A ‾    ⟺    A B = ∅    且 A ∪ B = Ω ( 1 ) 吸 收 律    若 A ⊂ B , 则 A ∪ B = B , A B = A ( 2 ) 交 换 律    A ∪ B = B ∪ A , A B = B A ( 3 ) 结 合 律    ( A ∪ B ) ∪ C = A ∪ ( B ∪ C ) , ( A B ) C = A ( B C ) ( 4 ) 分 配 律    A ( B ∪ C ) = A B ∪ A C , A ∪ B C = ( A ∪

    2024年02月11日
    浏览(39)
  • 概率论:数理统计基本概念——三大分布

    首先是X分布:    n=1的时候,f(y)就是正态分布平方的密度函数,这个可以用y=g(x)的密度函数计算方法来计算。 自由度是什么?: 很显然,几个X加起来,也就是自由度加起来:     接下来是t型分布:   这个T型分布建立在X型分布和标准正态分布上。   最后是F分布:    这

    2024年02月11日
    浏览(28)
  • 概率论与数理统计---随机变量的分布

    随机变量 随机变量就是随机事件的数值体现。 例如投色子记录色子的点数,记录的点数其实就是一个随机变量,他是这个点数出现的数值体现。 注意: 随机变量X = X(e) , 是一个单实值函数,每个随机事件的结果只能对应一个随机变量。 X(e)体现的是对随机事件的描述,本质

    2024年02月13日
    浏览(31)
  • 概率论与数理统计发展历史简介

    概率论是与概率有关的数学分支。虽然有几种不同的概率解释,但概率论通过一组公理来表达该概念,以严格的数学方式对待该概念。通常,这些公理用概率空间形式化概率,将取值在 0 到 1 之间的度量(称为概率度量)分配给称为样本空间的一组结果。样本空间的任何指定

    2024年02月10日
    浏览(26)
  • 概率论与数理统计————3.随机变量及其分布

    设E是一个随机试验,S为样本空间,样本空间的任意样本点e可以通过特定的对应法则X,使得每个样本点都有与之对应的数对应,则称 X=X(e)为随机变量 分布函数: 设X为随机变量,x是任意实数,则事件{Xx}为随机变量X的分布函数,记为F(x) 即: F(x)=P(Xx) (1)几何意

    2024年01月18日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包