运用 // 运算符试图计算组合数𝐶𝑛 𝑖,但是由于浮点数除法时精度问题会导致结果错误。(此处举例计算组合数C5 2)
源代码如下:
# // 运算符
def cni1(n, i):
minNI = min(i, n-i)
result = 1
for j in range(0, minNI):
result = result * (n-j) // (minNI-j)
return result
print(int(cni1(5, 2)))
运行结果如下:
8
改用 / 运算符后计算C5 2的值
源代码如下:
# / 运算符
def cni2(n, i):
minNI = min(i, n-i)
result = 1
for j in range(0, minNI):
result = result * (n-j) / (minNI-j)
return result
print(int(cni2(5, 2)))
运行结果如下:
10