我是一名数学学生,并获得了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
有人可以告诉我为什么会这样吗?
答案 0 :(得分:1)
我担心答案必须是Excel中缺乏精确度(最多15位),但这可能不是一个足够好的答案。
Excel {= 1}的COMBIN()函数(比如110)和A2
(比如35)可以分解为:
B2
下图中的上半部分显示了这一点(并确认了您的结果!):
底部将该公式分解为其组件,显示最大元素的值为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)-84
说 0
但是在 =(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