二项式系数和时间拥塞概率 Python
Binomial coefficient and time congestion Propabillity Python
def binomialco(p,k):
Sum = 1
Pro = 1
for i in range(0,k):
Sum = Sum*(p-i)
for i in range(1,k+1):
Pro = Pro*i
return float(Sum/Pro)
def P0(s,n,v,h):
athroisma = 0
for i in range(0,s+1):
dent= binomialco(n-1,i)*(v*h)**i
athroisma+=dent
return athroisma
s=input()
n=input()
v=input()
h=input()
print P0(s,n,v,h)
问题是当我输入以下内容时:s=2
、n=4
、v=float(1/30)
和 h=3
我应该得到 1.33
。我得到的只是 0.0
。有人可以帮我吗?
从你得到的东西猜测,你一定是在使用py2。在这里你将不得不强制 float
也就是你必须 return float(Sum)/float(Pro)
。
这是一个让你明白为什么的小测试
>>> 1/30
0
>>> float(1/30)
0.0
>>> float(1)/float(30)
0.03333333333333333
def binomialco(p,k):
Sum = 1
Pro = 1
for i in range(0,k):
Sum = Sum*(p-i)
for i in range(1,k+1):
Pro = Pro*i
return float(Sum/Pro)
def P0(s,n,v,h):
athroisma = 0
for i in range(0,s+1):
dent= binomialco(n-1,i)*(v*h)**i
athroisma+=dent
return athroisma
s=input()
n=input()
v=input()
h=input()
print P0(s,n,v,h)
问题是当我输入以下内容时:s=2
、n=4
、v=float(1/30)
和 h=3
我应该得到 1.33
。我得到的只是 0.0
。有人可以帮我吗?
从你得到的东西猜测,你一定是在使用py2。在这里你将不得不强制 float
也就是你必须 return float(Sum)/float(Pro)
。
这是一个让你明白为什么的小测试
>>> 1/30
0
>>> float(1/30)
0.0
>>> float(1)/float(30)
0.03333333333333333