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