提供一个 Excel 公式,用于计算 Excel 中正负 N 的二项式系数 (N,K)

Provide a single Excel Formula for calculating Binomial Coefficients (N,K) in Excel with positive or negative N

是否有单个 excel 公式可以采用整数输入 N 和 K 并针对 N 的正值或负值(或零)生成二项式系数 (N,K)?

N 和 K 的范围应该相当小,例如-11 < N < +11 和 -1 < K < +11。否则将生成超出 excel 能力的大量数字。


上下文

Excel 不提供二项式函数。那么如何解决这个问题呢?正 N 的二项式函数很简单:- Binomial(N,K) = Factorial(N)/(Factorial(N-K)*Factorial(K))。但这不适用于 negative N.

有关二项式系数的信息,Ken Ward 在 Pascals Triangle and Extended Pascal's Triangle 上的页面中有一些有用的内容。

我想在 Excel 中制作一个类似的表格资源...但是只有一个 table 涵盖 $N$ 的正值、零值和负值。

一个有效的方法是定义一个可以在 table 的每个单元格中使用的公式。该公式应区分 N 的负值、零值或正值,并使用适当的逻辑在每种情况下获得正确的输出。

当然,与其构建一个整体 table,还可以使用相同的公式来计算单个 (N,K) 输入值对的二项式系数。

您可以通过在单个 Excel 单元格中使用条件公式来模拟二项式函数,该单元格将其他两个单元格的内容作为输入。

例如如果工作表单元格 A1 和 A2 包含对应于二项式 (N,K) 中的 N,K 的数值,则可以将以下条件公式放入另一个工作表单元格(例如 A3)...

=IF(A1>-1,IF(B1>A1,0,(FACT(A1)/(FACT(B1)*FACT(A1-B1)))),(-1)^(B1)*(FACT(-A1-1+B1)/(FACT(B1)*FACT(-A1-1+B1-B1))))

这将处理 N 的正值和负值(和零)。在此解决方案中,N 和 K 都必须是整数(包括零)。 excel 能够处理的 N 和 K 的大小是有限制的(但我还没有测试超出 -11 范围的限制

excelf 公式使用条件结构:IF(test,operation if true, operation if false).

伪代码逻辑如下:-

IF(N>-1) THEN
    IF(K>N) THEN
        Result = 0
    ELSE
        Result = (N!)/(K!*(N-K)!)
    ENDIF
ELSE
    Result = (-1)^(K) * (-N-1+K)! / ( (K)! * (-N-1+K-K)! )
ENDIF

注意当 N 为负数时公式使用 Upper Negation Identity 来确定系数:-

(-N,K) = (-1)^K * (K-N-1,K).


帕斯卡三角形Table

要为 N 的负值和正值创建 "Pascal's Triangle" 类型 table,请执行以下操作。

(1) 创建一个新的空白 excel 工作表。

(2) 在 B 列中输入整数 N 个值(从单元格 B4 开始向下进行):-

e.g Nmin,Nmin-1,...-2,-1,0,1,2,3,...,Nmax-1,Nmax. 

(3) 在第 3 行中输入整数 K 值(从单元格 C3 开始向右进行):-

0,1,2,3,...Kmax.

(4) 然后在单元格(C4)中输入条件公式:-

=IF($B4>-1,IF(C>$B4,0,(FACT($B4)/(FACT(C)*FACT($B4-C)))),(-1)^(C)*(FACT(-$B4-1+C)/(FACT(C)*FACT(-$B4-1+C-C))))

(5) 复制单元格 C4 并将其粘贴到以您的 N 和 K 值为界(左侧和顶部)的网格中的所有单元格。

网格单元将包含对应于 (N,K) 的二项式系数。

对于通过 google 到达这里的任何其他人,Excel 实际上确实有 N >= K >= 0 的 COMBIN。如果您知道输入否则有效,一个选项是处理 K > N 将是 IFERROR(COMBIN(N, K), 0),优点是您只指定 N 和 K 一次,缺点是当您的假设不可避免地被证明是错误时隐藏。

为了给出一个实际的答案(老实说,如果网站允许我发表评论,我更愿意发表评论),然后可以将另一个答案的公式简化为

IF(A1>-1,IF(B1>A1,0,COMBIN(A1,B1)),(-1)^(B1)*COMBIN(-A1-1+B1,B1))

作为奖励,它似乎能够处理更大范围的输入,但是 COMBIN 的实施避免了 FACT 暂时超过 1.8e308 的问题,即使其中大部分会在除法中被抵消。