该题目描述一个网络中数据包交换(Packet Switching)的例子。题目如下:
Q1:如何求出0.0004这个值?
(1)、公式推导过程(手写):
(2)将计算过程转化为Python代码:
import math
def fact(n):
if n == 0:
return 1
return n * fact(n - 1)
p_bar = 0
for i in range(0, 11):
# print(i)
p_bar += fact(35) / fact(i) / fact(35 - i) * math.pow(0.1, i) * math.pow(0.9, 35 - i)
p = 1 - p_bar
print(p)
运行结果(截图):
Q2:如果总用户数 > 35,这一概率会如何变化?
更改后的 Python 代码,手动输入总用户数的值:
import math
def fact(n):
if n == 0:
return 1
return n * fact(n - 1)
p_bar = 0
n = int(input("输入总用户数n:"))
for i in range(0, 11):
# print(i)
p_bar += fact(n) / fact(i) / fact(n - i) * math.pow(0.1, i) * math.pow(0.9, n - i)
p = 1 - p_bar
print(p)
# print(fact(6))
# print(math.pow(0.1, 2))
n = 50(总用户数为50):
n = 75(总用户数为75):
n = 90(总用户数为90):
n = 100(总用户数为100):
此概率值会随着总用户数的增多而显著增加。(直观看来也是如此。)
解答完毕。