使用COMBIN功能的奇怪结果

时间:2013-09-11 16:41:54

标签: excel numbers excel-formula precision worksheet-function

我是一名数学学生,并获得了link详细说明的证据。

出于好奇,我尝试在一个Excel表中设置它,其中列为N,行为K,因此:

=COMBIN(R$6,$B16)-COMBIN(R$6-1,$B16)-COMBIN(R$6-1,$B16-1)

应该等于0。它大部分都有,但有时我会得到奇怪的结果。例如:

=COMBIN(110,35)-COMBIN(110-1,35)-COMBIN(110-1,35-1)=0

=COMBIN(110,45)-COMBIN(110-1,45)-COMBIN(110-1,45-1)=0

=COMBIN(110,40)-COMBIN(110-1,40)-COMBIN(110-1,40-1)=633318697598976

有人可以告诉我为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

我担心答案必须是Excel中缺乏精确度(最多15位),但这可能不是一个足够好的答案。

Excel {= 1}的COMBIN()函数(比如110)和A2(比如35)可以分解为:

B2

下图中的上半部分显示了这一点(并确认了您的结果!):

SO18746815 example

底部将该公式分解为其组件,显示最大元素的值为1.5882E + 178。这完全符合Excel对+/- 1.7976931348623158e + 308公式的限制,但可能实际上是介于:

之间

15882455415227300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

15882455415227500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

我猜是问题所在。

让我感到困惑的是,坚持使用110,差异仅在=FACT(A2)/(FACT(A2-B2)*FACT(B2)) 范围1-109中出现29次 - 但是对于任何解释,最好还是回到数学!

答案 1 :(得分:0)

Excel 中存在一个特殊的 COMBIN 错误,该错误已存在多年(Excel 2006 或更早版本且仍在 Excel 365 中)并且与大数除法没有明显关系,因为它发生在小数给出整数结果时的整数。

这似乎只有在与 0 进行比较或使用 MOD 函数时才会在现实世界中出现。因此,如果这对您很重要,那么您需要在处理小整数时对结果进行四舍五入,或者在不与 0 进行比较的情况下在等式测试中允许一些灵活性。

  • 你指出 =(COMBIN(110,35)-COMBIN(110-1,35)-COMBIN(110-1,35-1)=0) 给出了 FALSE
  • 但尝试 =(COMBIN(110,35)=COMBIN(110-1,35)+COMBIN(110-1,35-1)) 会得到 TRUE

还有更小的例子,第一个是:

  • =(COMBIN(9,3)-COMBIN(8,3)-COMBIN(8,2)=0) 给予 FALSE
  • =(COMBIN(9,3)=COMBIN(8,3)+COMBIN(8,2)) 给予 TRUE

或者更简单

  • =(COMBIN(9,3)-84=0) 给予 FALSE
  • =(COMBIN(9,3)=84) 给予 TRUE
  • =(FACT(9)/(FACT(3)*FACT(6))-84=0) 给予 TRUE

TRUE 结果是期望的行为。

通常情况下,Excel 的 COMBIN 函数会设法给出正确的整数。但在某些情况下,它给出的值略低于或高于正确的整数,通常高于或低于一两个浮点精度,然后试图隐藏它确实存在的事实:=COMBIN(9,3)-840 但是在 =(COMBIN(9,3)-84=0) 中,它实际上计算了一个数字 -1.421E-14 以与 0 进行比较。

错误的一些小例子:

  • COMBIN(9,3)COMBIN(9,6) 计算 84 -1.42E-14
  • COMBIN(10,4)COMBIN(10,6) 计算 210 -2.84E-14
  • COMBIN(11,5)COMBIN(11,6) 计算 462 -5.68E-14
  • COMBIN(12,6) 计算 924 -2.27E-13
  • COMBIN(14,6)COMBIN(14,8) 计算 3003 -4.55E-13
  • COMBIN(15,3)COMBIN(15,12) 计算 455 +5.68E-14
  • COMBIN(15,7)COMBIN(15,8) 计算 6435 -9.09E-13
  • COMBIN(16,4)COMBIN(16,12) 计算 1820 +2.27E-13
  • COMBIN(16,8) 计算 12870 -1.82E-12
  • COMBIN(17,5)COMBIN(17,12) 计算 6188 +9.09E-13
  • COMBIN(18,6)COMBIN(18,12) 计算 18564 +3.64E-12
  • COMBIN(18,7)COMBIN(18,11) 计算 31824 -3.64E-12
  • COMBIN(18,9) 计算 48620 -7.28E-12
  • COMBIN(19,7)COMBIN(19,12) 计算 50388 +7.28E-12
  • COMBIN(19,8)COMBIN(19,11) 计算 75582 -1.46E-11
  • COMBIN(20,5)COMBIN(20,15) 计算 15504 -1.82E-12
  • COMBIN(20,8)COMBIN(20,12) 计算 125970 +1.46E-11

您的特定示例远远超出整数精度,但即使是小得多的 COMBIN(110,3) 计算 215820 +2.91E-11

相关问题