scipy.special.
阶乘k#
- scipy.special.factorialk(n, k, exact=None)[源代码][源代码]#
n 的 k 阶多因子,n(!!…!).
这是跳过 k 值的 n 的多因子。例如,
factorialk(17, 4) = 17!!!! = 17 * 13 * 9 * 5 * 1
特别是,对于任何整数
n
,我们有factorialk(n, 1) = factorial(n)
factorialk(n, 2) = factorial2(n)
- 参数:
- n整数或类数组
计算多重阶乘。如果
n < 0
,返回值为 0。- k整数
多因素的顺序。
- 精确bool, 可选
如果 exact 设置为 True,则使用整数算术精确计算答案,否则使用近似值(更快,但结果为浮点数而不是整数)
警告
在 SciPy 1.15.0 中,
exact
的默认值将更改为False
。
- 返回:
- val整数
n 的多因子。
注释
虽然不如双阶乘那样直接,但通过研究给定余数
r < k
的n``(因此 ``n = m * k + r
,相应地r = n % k
),可以计算出 n!(k) 的一般近似公式,这可以组合成对所有整数值n >= 0
和k > 0
有效的公式:n!(k) = k ** ((n - r)/k) * gamma(n/k + 1) / gamma(r/k + 1) * max(r, 1)
这是当
exact=False
时的近似基础。另请参见 [1]。参考文献
示例
>>> from scipy.special import factorialk >>> factorialk(5, k=1, exact=True) 120 >>> factorialk(5, k=3, exact=True) 10 >>> factorialk([5, 7, 9], k=3, exact=True) array([ 10, 28, 162]) >>> factorialk([5, 7, 9], k=3, exact=False) array([ 10., 28., 162.])