Giả sử chúng ta có hai giá trị k và n. Xét một hoán vị ngẫu nhiên p1, p2, ..., pn của n số tự nhiên đầu tiên 1, 2, ..., n và tính giá trị F sao cho F =(X2 + ... + Xn-1) k , trong đó Xi là một biến ngẫu nhiên chỉ báo, là 1 khi một trong hai điều kiện sau giữ nguyên:pi-1
Vì vậy, nếu đầu vào là k =1 n =1000, thì đầu ra sẽ là 1996/3
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
1, 1000
Đầu ra
1996/3