首页 > 编程语言 >Python实现几何分布图(Geometric Distribution)

Python实现几何分布图(Geometric Distribution)

时间:2024-12-05 12:32:05浏览次数:11  
标签:plt 试验 Python 成功 次数 pmf 概率 Geometric Distribution

几何分布(Geometric Distribution)是一个离散概率分布,用于表示在一次独立重复试验中,直到首次成功所需的试验次数的分布。

几何分布的特点

1. 每次试验的结果只有两种:成功或失败(比如掷硬币)。

2. 每次试验是独立的,且成功的概率 p 是恒定的。

3. 随机变量 X 表示第一次成功发生所需的试验次数。

概率质量函数(PMF)

几何分布的概率质量函数为:

其中:

• k:首次成功发生的试验次数 (k=1, 2, 3, ...)。

• p:单次试验成功的概率。

实际案例:抛硬币

假设我们在抛硬币时想知道,直到第一次出现正面(成功)需要抛掷的次数:

• 每次抛硬币的成功概率p=0.5 。

• 我们想分析 k 次抛掷时的概率分布。

Python 实现

我们将使用 scipy.stats.geom 模块来计算几何分布并绘制分布图。

代码示例

import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import geom

# 设置成功概率 p
p = 0.5

# 定义 k 的范围(试验次数)
k = np.arange(1, 11)  # 试验次数从 1 到 10

# 计算 PMF(概率质量函数)
pmf_values = geom.pmf(k, p)

# 输出每个 k 的概率
for i, prob in zip(k, pmf_values):
    print(f"P(X = {i}) = {prob:.4f}")

# 绘制几何分布图
plt.bar(k, pmf_values, color='skyblue', edgecolor='black')
plt.title("Geometric Distribution (p=0.5)")
plt.xlabel("Number of Trials (k)")
plt.ylabel("Probability P(X = k)")
plt.xticks(k)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()

运行结果

1. 概率输出

P(X = 1) = 0.5000
P(X = 2) = 0.2500
P(X = 3) = 0.1250
P(X = 4) = 0.0625
P(X = 5) = 0.0312
P(X = 6) = 0.0156
P(X = 7) = 0.0078
P(X = 8) = 0.0039
P(X = 9) = 0.0020
P(X = 10) = 0.0010

2. 分布图

• 横轴表示试验次数 k。

• 纵轴表示对应的概率 P(X=k)。

• 概率随着 k 的增加呈指数递减。

更复杂的应用场景

1. 游戏中的中奖

在一个抽奖游戏中,每次抽奖的中奖概率 。我们想知道第一次中奖需要多少次抽奖。

p = 0.1
k = np.arange(1, 21)  # 定义试验次数从 1 到 20
pmf_values = geom.pmf(k, p)

plt.bar(k, pmf_values, color='orange', edgecolor='black')
plt.title("Geometric Distribution (p=0.1)")
plt.xlabel("Number of Trials (k)")
plt.ylabel("Probability P(X = k)")
plt.xticks(k)
plt.show()

2. 网络传输

在网络通信中,每次发送数据包的成功概率p=0.9 ,我们想知道成功传输一个数据包需要的尝试次数分布。

总结

1. 几何分布是一种离散分布,用于建模首次成功所需的试验次数。

2. Python 中可以使用 scipy.stats.geom 来计算和模拟几何分布。

3. 几何分布的典型场景包括:

        • 模拟抛硬币直到出现正面。

        • 模拟抽奖直到中奖。

        • 模拟网络数据包传输的成功尝试次数。

标签:plt,试验,Python,成功,次数,pmf,概率,Geometric,Distribution
From: https://blog.csdn.net/u013039977/article/details/144262421

相关文章

  • RESTful API 简介(Python示例)
    RESTfulAPI是一种基于REST(RepresentationalStateTransfer,表述性状态转移)架构风格的接口设计方法。它通过HTTP协议提供对资源的访问和操作,具有简单、高效和可扩展的特点。REST的核心概念1.资源(Resource)•资源是RESTfulAPI的核心。•每个资源用一个唯一的U......
  • 蓝桥杯备考冲刺必刷题(Python) | P152 反倍数
    学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。附上汇总贴:蓝桥杯备考冲刺必刷题(Python)|汇总-CSDN博客【题目描述】给定三个整数a,b,c,如果一个整数既不是α的整数倍也不是b的整数倍还不是c的整数倍,则这个数称为反倍数。请问在1至n中有多少个......
  • 蓝桥杯备考冲刺必刷题(Python) | 128 冰雹数
    学习Python从娃娃抓起!记录下蓝桥杯备考比赛学习过程中的题目,记录每一个瞬间。附上汇总贴:蓝桥杯备考冲刺必刷题(Python)|汇总-CSDN博客【题目描述】任意给定一个正整数N,如果是偶数,执行:N/2;如果是奇数,执行:Nx3+1,生成的新的数字再执行同样的动作,循环往复。通过观察发现,这个......
  • python语言基本数据类型
    在内存中可以使用多种类型存储数据,例如,存储一个人名字可以用字符型,存储年龄可以用数值型,存储一个人的性别可以用布尔类型等。这些都是Python中提供的基本数据类型。一、数字数字类型主要包括整数、浮点数和负数。整数整数又包括十进制整数八进制整数:由0~7组成,逢八进一,......
  • 【python自动化三】allure测试报告优化
    前文中讲了如何集成allure测试报告,但生成的测试报告比较简单可以看到无论是主页还是具体用例页面,内容都比较少,无法看到更具体的内容,这里我们丰富一下测试报告1.添加allure相关的装饰器装饰器说明@allure.epic()场景范围,直译为史诗,就是一个比较大的场景范围@allure.feat......
  • 在 docker 容器中运行 python 程序,报错:"RuntimeError: can't start new thread"
    具体报错信息如下所示:Traceback(mostrecentcalllast):File"/usr/local/lib/python3.12/site-packages/uvicorn/protocols/http/h11_impl.py",line406,inrun_asgiresult=awaitapp(#type:ignore[func-returns-value]^^^^^^^^^^^^^^^^^^......
  • Python入门:从零基础到精通的详细教程(0广告,纯干货)
    前言:在信息技术飞速发展的今天,掌握编程语言的运维工程师与那些尚未涉足编程领域的运维工程师,仿佛生活在两个截然不同的世界。本博主深感这一鸿沟之深远,因此决定倾力打造一系列详尽至极的Python从零到精通教程,旨在帮助更多运维人员跨越这一技术壁垒。本系列教程将分为三大阶......
  • 深入理解Python中的装饰器
    前言作为一名程序员,我们常常会遇到需要重复使用的代码段。为了提高代码的可读性和重用性,Python引入了装饰器(Decorator)这一强大的工具。装饰器可以在不修改函数源代码的情况下,为函数添加新的功能。本文将详细讲解Python中装饰器的使用方法及其实现原理。什么是装饰器?装饰......
  • 【最新原创毕设】基于SpringBoot的网上报修平台+94800(免费领源码)可做计算机毕业设计JA
    摘要随着信息技术的快速发展和普及,高校宿舍管理面临着诸多挑战与机遇。传统的宿舍管理模式,如手工记录报修信息、纸质文档管理等,已无法满足现代高校对效率和便捷性的需求。因此,开发一套高效、智能的网上报修平台显得尤为重要。基于springBoot的网上报修平台的设计和实现正......
  • python带翻页blbl视频爬虫程序代码QZQ
    importsubprocessdefdownload_bilibili_video(video_url):try:#使用you-get下载视频,-o指定输出目录(这里是当前目录)subprocess.run([‘you-get’,‘-o’,‘.’,video_url],check=True)print(“视频下载成功!”)exceptsubprocess.CalledProcessErrorase:print......