伯努利二项分布的相对高概率与实际的低概率

2023-11-02 19:51

本文主要是介绍伯努利二项分布的相对高概率与实际的低概率,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

伯努利二项分布的相对高概率与实际的低概率

计算公式

P ( X = k ) = C n k p k ( 1 − p ) n − k P(X=k)=C_{n}^{k} p^k(1-p)^{n-k} P(X=k)=Cnkpk(1p)nk

n n n 表示试验次数, p p p 表示事件出现的概率, k k k 表示事件出现的次数

简单理解就是,盒子里有total个小球,有 p ∗ t o t a l p*total ptotal个红球, ( 1 − p ) ∗ t o t a l (1-p)*total (1p)total个黑球,每次有放回地取1个小球,每次取到红球的概率为 p p p

给定 p p p n n n

P ( X = 0 ) + P ( X = 1 ) + P ( X = 2 ) + . . . + P ( X = n ) = 1 P(X=0)+P(X=1)+P(X=2)+...+P(X=n)=1 P(X=0)+P(X=1)+P(X=2)+...+P(X=n)=1

n = 10 , p = 0.3 n=10, p=0.3 n=10,p=0.3, P P P 关于 X X X的函数

在这里插入图片描述

X = 3 X=3 X=3 的概率最大, 但是不足0.3

n = 100 , p = 0.3 n=100, p=0.3 n=100,p=0.3 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 30 X=30 X=30 的概率最大,但是不足0.1

n = 100 , p = 0.03 n=100, p=0.03 n=100,p=0.03 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 3 X=3 X=3 的概率最大,但是不足0.3

n = 100 , p = 0.99 n=100, p=0.99 n=100,p=0.99 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 99 X=99 X=99 的概率最大,但是不足0.4

n = 1000 , p = 0.99 n=1000, p=0.99 n=1000,p=0.99 时, P P P 关于 X X X 的函数

在这里插入图片描述

X = 990 X=990 X=990 的概率最大,但是不足0.15

由此,我们可以直接假定,小球总数就是 n n n,红球的数量为 n ∗ p n*p np,那么 n n n次试验中出现 n ∗ p n*p np 次红球的概率最高,即 P ( X = n ∗ p ) P(X=n*p) P(X=np) 最大,但是其数值大小并没有想象中的0.8、0.9那么大,但是可以看到

P ( . . . , X = n ∗ p − 3 , X = n ∗ p − 2 , X = n ∗ p − 1 , X = n ∗ p , X = n ∗ p + 1 , X = n ∗ p + 2 , X = n ∗ p + 3 , . . . ) P(...,X=n*p-3,X=n*p-2,X=n*p-1,X=n*p,X=n*p+1,X=n*p+2,X=n*p+3,...) P(...,X=np3,X=np2,X=np1,X=np,X=np+1,X=np+2,X=np+3,...)

的概率接近于 1 1 1

综上,给定 p p p n n n

P ( X = n ∗ p ) = C n n ∗ p p n ∗ p ( 1 − p ) n − n ∗ p P(X=n*p)=C_{n}^{n*p} p^{n*p}(1-p)^{n-n*p} P(X=np)=Cnnppnp(1p)nnp

是所有 X = k X=k X=k 中最大的值,但是这个值本身的大小其实不大

给定 n n n ,但是 p p p 可变

这种情况下可以理解为,

n = 100 n=100 n=100 个小球,有 0 0 0 个红球, 取 100 100 100 次, 100 100 100 次中只有 0 0 0 个红球的概率;

n = 100 n=100 n=100 个小球,有 1 1 1 个红球, 取 100 100 100 次, 100 100 100 次中只有 1 1 1 个红球的概率;

n = 100 n=100 n=100 个小球,有 2 2 2 个红球, 取 100 100 100 次, 100 100 100 次中只有 2 2 2 个红球的概率;

n = 100 n=100 n=100 个小球,有 3 3 3 个红球, 取 100 100 100 次, 100 100 100 次中只有 3 3 3 个红球的概率;

n = 100 n=100 n=100 个小球,有 4 4 4 个红球, 取 100 100 100 次, 100 100 100 次中只有 4 4 4 个红球的概率;

n = 100 n=100 n=100 个小球,有 99 99 99 个红球, 取 100 100 100 次, 100 100 100 次中只有 99 99 99 个红球的概率;

n = 100 n=100 n=100 个小球,有 100 100 100 个红球, 取 100 100 100 次, 100 100 100 次中只有 100 100 100 个红球的概率;

X X X 的取值范围为 [ 0 , 100 ] [0,100] [0,100]

如果记红球的个数为 k k k,那么上述式子就可以改写为:

P ( X = k ) = C n k ( k n ) k ( 1 − k n ) n − k P(X=k)=C_{n}^{k} ({\frac{k}{n}})^{k} (1-{\frac{k}{n}})^{n-k} P(X=k)=Cnk(nk)k(1nk)nk

如果 n = 100 n=100 n=100, 得到如下函数图像:

在这里插入图片描述

除了 X = 0 X=0 X=0 X = 100 X=100 X=100 处, P = 1 P=1 P=1,其余的值都很小,

比如 X = 1 X=1 X=1 或者 X = 99 X=99 X=99 处, P = 0.3697 P=0.3697 P=0.3697

比如 X = 2 X=2 X=2 或者 X = 98 X=98 X=98 处, P = 0.2734 P=0.2734 P=0.2734

比如 X = 3 X=3 X=3 或者 X = 97 X=97 X=97 处, P = 0.2274 P=0.2274 P=0.2274

而当 X = 50 X=50 X=50 的时候, P = 0.0795 P=0.0795 P=0.0795

结论

我们可以得到这样一个形象的说明,假设有 100 100 100 个人给你投票,每个人投给你的概率为 0.99 0.99 0.99,那么最后收到 100 100 100 张票,虽然获得 99 99 99 张投票的概率最大,但是其数值只有 0.3697 0.3697 0.3697,但是获得的票数超过 90 90 90 的概率却大于 0.9999 0.9999 0.9999。如果每个人投给你的概率为 0.5 0.5 0.5,那么你获得50张选票的概率只有 0.0795 0.0795 0.0795,但是你的票数在 [ 40 , 60 ] [40,60] [40,60] 之间的概率为 0.9647 0.9647 0.9647。主要原因在于刚好 50 50 50 票的要求太苛刻,因为有 101 ( 0 − 100 ) 101(0-100) 101(0100) 种票选结果。

作图代码

给定 n n n p p p

from scipy.special import comb
import numpy as np
import matplotlib.pyplot as pltcount = 100
p_n = 50
p = p_n / count
q = 1 - pn = 100
ps = [i for i in range(n + 1)]
y = []
s = 0
for i in ps:t = comb(n, i) * np.power(p, i) * np.power(q, n - i)if i == n * p:print(t)s += ty.append(t)# a=0
# for i in range(21):
#     a+=y[40+i]# print('a=' ,a)
fig, ax = plt.subplots(figsize=(4, 2.5))
print(s)
ax.plot(ps, y)
name = 'n = ' + str(n) + '\np = ' + str(p)
ax.set_xlabel('X', fontsize=12)
ax.set_ylabel('P', fontsize=12)
ax.set_title(name)
ax.grid()
figsave = 'n_' + str(n) + '_p_' + str(p) + '.png'
plt.tight_layout()
plt.savefig(figsave)
plt.close()

给定 n n n

from scipy.special import comb
import numpy as np
import matplotlib.pyplot as pltn = 100ps = [i for i in range(n + 1)]
y = []
s = 0
for p in ps:t = comb(n, p) * np.power(p / n, p) * np.power((1 - p / n), n - p)# if p==1 or p==198:#     print(t)s += ty.append(t)fig, ax = plt.subplots(figsize=(4, 2.5))print(s)ax.plot(ps, y)
ax.set_xlabel('X = k', fontsize=12)
ax.set_ylabel('P', fontsize=12)
ax.grid()
ax.set_title('n = ' + str(n), fontsize=12)
plt.tight_layout()
figsave = 'n_' + str(n) + '.png'
plt.savefig(figsave)
plt.close()

这篇关于伯努利二项分布的相对高概率与实际的低概率的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/332921

相关文章

hdu4865(概率DP)

题意:已知前一天和今天的天气概率,某天的天气概率和叶子的潮湿程度的概率,n天叶子的湿度,求n天最有可能的天气情况。 思路:概率DP,dp[i][j]表示第i天天气为j的概率,状态转移如下:dp[i][j] = max(dp[i][j, dp[i-1][k]*table2[k][j]*table1[j][col] )  代码如下: #include <stdio.h>#include

Java了解相对较多!

我是对Java了解相对较多,而对C#则是因工作需要才去看了一下,C#跟Java在语法上非常相似,而最初让我比较困惑的就是委托、事件部分,相信大多数初学者也有类似的困惑。经过跟Java的对比学习,发现这其实跟Java的监听、事件是等同的,只是表述上不同罢了。   委托+事件是观察者模式的一个典型例子,所谓的委托其实就是观察者,它会关心某种事件,一旦这种事件被触发,这个观察者就会行动。   下

概率DP (由一道绿题引起的若干问题。目前为一些老题,蒟蒻的尝试学习1.0)

概率DP: 利用动态规划去解决 概率 期望 的题目。 概率DP 求概率(采用顺推) 从 初始状态推向结果,同一般的DP类似,只是经历了概率论知识的包装。 老题: 添加链接描述 题意: 袋子里有w只白鼠,b只黑鼠,A和B轮流从袋子里抓,谁先抓到白色谁就赢。A每次随机抓一只,B每次随机 抓完一只后 会有另外一只随机老鼠跑出来。如果两个人都没有抓到白色,那么B赢。A先抓,问A赢得概率。 w b 均在

2024国赛论文拿奖快对照这几点及评阅要点,勿踩雷区!(国赛最后冲刺,提高获奖概率)

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ 2024“高教社杯”全国大学生数学建模竞赛已过去第三个夜晚,小伙伴们都累了没有,如果感到思维滞涩,别忘了稍作休息,放松一下自己,准备迎接国赛非常重要的收尾阶段——论文。 国赛这几天的努力最后都

Python 错误 TypeError 解析,实际错误实例详解 (五)

文章目录 前言TypeError:‘DataFrame’ object is not callable 错误常见的错误发生场景一、错误地使用小括号而非方括号来访问列二、意外地将函数名覆盖为 DataFrame三、 在方法链中错误地使用小括号 小结 Python 中错误 TypeError: 'NoneType' object is not subscriptablePython 中的 Non

(4)SVG-path中的椭圆弧A(绝对)或a(相对)

1、概念 表示经过起始点(即上一条命令的结束点),到结束点之间画一段椭圆弧 2、7个参数 rx,ry,x-axis-rotation,large-arc-flag,sweep-flag,x,y (1)和(2)rx,ry rx:椭圆的x轴半径(即水平半径) ry:椭圆的y轴半径(即垂直半径) 这两个参数好理解,就是椭圆的两条对称轴半径,相等即为圆 也可以写比例,写比例时默认用符合条件

OpenCV结构分析与形状描述符(9)检测轮廓相对于其凸包的凹陷缺陷函数convexityDefects()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 查找一个轮廓的凸性缺陷。 下图显示了一个手部轮廓的凸性缺陷: convexityDefects 是 OpenCV 库中的一个函数,用于检测轮廓相对于其凸包的凹陷缺陷。这个函数可以帮助识别轮廓中的凹进去的部分,通常被用来分析手部或其他物体的形状

HDU 4035 Maze (树状dp + 概率)

OJ题目 : click here ~~~ 题目分析 :这篇文章已经说的很好很好了 , 直接借用 ,猛戳~~ int n;double k[10002] , e[10002];double A[10002] , B[10002] , C[10002];vector<int> List[10002];bool dfs(int u , int father){if(List[u].s

堆(逐个添加元素创建堆)-堆结构的创建+堆结构的实际应用

一、问题引入 一堆数据的值在不断变化,我们想要从这堆数据中获取到最大值或者最小值(比如电影排行榜中电影的排名,每部电影观看人数越多,那么该部电影的排名就越高) 1、数据结构解决的是数据的存储问题,算法解决的是存储了的数据的使用效率问题 2、数据结构里面的堆结构(heap)和Java语言中的数据堆不一样 3、数据结构里面的堆结构本质上是数组 4、数组的元素查询效率高(由于使用索引查询),时

基于实际业务场景下的Flume部署

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! 有这样一个场景,我们要基于某个web服务实时持续收集用户行为数据; 再实施方案前,我们做了以下的准备工作 (不细说) web服务端部署nginx,用于收集用户行为并有形成log (172.17.111.111)我们数据平台是部