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(1−p)n−k
n n n 表示试验次数, p p p 表示事件出现的概率, k k k 表示事件出现的次数
简单理解就是,盒子里有total个小球,有 p ∗ t o t a l p*total p∗total个红球, ( 1 − p ) ∗ t o t a l (1-p)*total (1−p)∗total个黑球,每次有放回地取1个小球,每次取到红球的概率为 p p p。
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
X = 3 X=3 X=3 的概率最大, 但是不足0.3
X = 30 X=30 X=30 的概率最大,但是不足0.1
X = 3 X=3 X=3 的概率最大,但是不足0.3
X = 99 X=99 X=99 的概率最大,但是不足0.4
X = 990 X=990 X=990 的概率最大,但是不足0.15
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=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,...)
的概率接近于 1 1 1 。
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=n∗p)=Cnn∗ppn∗p(1−p)n−n∗p
是所有 X = k X=k X=k 中最大的值,但是这个值本身的大小其实不大
这种情况下可以理解为,
有 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(1−nk)n−k
如果 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(0−100) 种票选结果。
给定 n n n 和 p p p
from scipy.special import comb
import numpy as np
import matplotlib.pyplot as plt
count = 100
p_n = 50
p = p_n / count
q = 1 - p
n = 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 += t
y.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 plt
n = 100
ps = [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 += t
y.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()