Python- // 算术运算符的精度问题

(135) 2024-04-30 19:01:01

 运用 // 运算符试图计算组合数𝐶𝑛 𝑖,但是由于浮点数除法时精度问题会导致结果错误。(此处举例计算组合数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

THE END

发表回复