Python程序从给定条件的指标随机变量计算函数
假设我们有两个值k和n。考虑前n个自然数1,2,...,n的随机排列p1,p2,...,pn并计算值F,使得F=(X2+...+Xn-1)k,其中Xi是指标随机变量,当满足以下两个条件之一时为1:pi-1<pi>pi+1或pi-1>pi<pi+1,否则Xi为0。我们必须找到F的期望值。
所以,如果输入像k=1n=1000,那么输出将是1996/3
示例
让我们看看以下实现以获得更好的理解-
from math import gcd
def exp_factor(n,k):
if k == 1:
return (2*(n-2),3)
elif k == 2:
return (40*n**2 -144*n + 131,90)
elif k == 3:
return (280*n**3 - 1344*n**2 +2063*n -1038,945)
elif k == 4:
return (2800*n**4 - 15680*n**3 + 28844*n**2 - 19288*n + 4263, 14175)
elif k == 5:
return (12320*n**5 - 73920*n**4 + 130328*n**3 - 29568*n**2 - 64150*n -5124, 93555)
return 1.0
def solve(k, n):
M = n-2
p = 2.0/3
q = 1 - p
num, den = exp_factor(n,k)
g = gcd(num, den)
return str(int(num/g))+'/'+str(int(den/g))
k = 1
n = 1000
print(solve(k, n))输入
1, 1000输出结果
1996/3