在Python中计算n-单纯形数?

在Python中计算n-单纯形数?,python,math,Python,Math,不知道这是怎么回事。n-单纯形数(据我所知)是四面体数和三角形数到d维的推广:。下面是我将这些公式(在的帮助下)转换为Python代码以生成这些数字的天真尝试: def simplex(maxim, s): result = s for i in range(1, maxim-1): result = result * (i + 1) #? result //= factorial(maxim) return result 我希望此函数返回最

不知道这是怎么回事。n-单纯形数(据我所知)是四面体数和三角形数到d维的推广:。下面是我将这些公式(在的帮助下)转换为Python代码以生成这些数字的天真尝试:

def simplex(maxim, s):
    result = s
    for i in range(1, maxim-1):
        result = result * (i + 1) #?

    result //= factorial(maxim)
    return result

我希望此函数返回最大维s-th单纯形数,但正如您可能知道的,我对如何实际实现这一点有点困惑。

以下是我的解决方案:

def simplex(maxim, s):
    result = s
    for i in range(1, maxim):
        result *= i + s
    result //= factorial(maxim)
    return result
我认为
math.comb(maxim+s-1,maxim)
提供了您想要的,至少假设Python>=3.8。对于早期的Python版本,使用
factorial(maxim+s-1)//factorial(maxim)//factorial(s-1)