首页 > 解决方案 > 模数如何处理也小于除数的负股息?

问题描述

需要明确的是,我理解模数在以下 3 个场景中的行为。

我明白为什么 16 % 3 = 1。

我明白为什么 -16 % 3 = 2。(这可能很棘手,我意识到)

我明白为什么 3 % 16 = 3。

但我不明白为什么 -3 % 16 = 13。我也不明白为什么一些在线资源(和一些编程语言)给出的答案是 -3。我是初学者,所以实用的答案对我最有用。谢谢!

标签: pythonmathmodulo

解决方案


在python中模数会使用这个方法来得到结果

mod(a,n) = a - {n * Floor(a/n)}

所以如果它是 -3 % 16 它将是这样的:

mod(-3,16) = -3 - {16 * Floor(-3/16)}
           = -3 - {16 * Floor(-0.1875)}
           = -3 - {16 * -1}
           = -3 - (-16)
           = 13

请在这里查看一个很好的解释


推荐阅读