它是一个二项式求和,首先从 k = 0 到 C,然后 m = 0 到 k,f = 0 到 Ck,这里 s 是一个函数,它接受 0 和 1 之间的输入并给出 (0, 1) 之间的输出。
我需要帮助找到一种有效的方法来在 python 中执行此操作。现在我使用的是三重循环,它工作得很好,但对于大型 C 来说效率不高。我目前使用的三重循环如下,
这里的 's' 本质上是线性的,但它可以采取任何需要的形状。'r' 也被视为 0.1
import numpy as np
from math import comb
def s(d):
return d * (0.99 - 0.01) + 0.01
S = 0
C = 100
for k in range(C):
for m in range(k):
for f in range(C-k):
S += comb(C, k) * (((0.1)**(k))*((0.9)**(C-k))) * comb(k, …
Run Code Online (Sandbox Code Playgroud)