推导模态表达式的数学方法

下面是两个表达式,使用欧几里得除法在java中找到模(n,d)

(d + (n % d))  if (n < 0)

(n%d)  if n > 0

我的问题是,

我不清楚,如果在写上面的表达式之前如何数学思考,如果n <0?

请用数学方法帮助我,因为我不想记住逻辑!


如果你想记住n % d所做的事情,它会返回一个范围(-d, d)的值,并将其与n的符号相匹配。

如果你想知道如何得到一个积极的结果(或严格来说,结果匹配d的符号而不是n),那么比if更容易。

由于(n % d)处于(-d, d)的范围内,意味着(n % d) + n处于(0, 2d)的范围内,所以((n % d) + n) % d是值在[0, d)范围内,与n一致。

因此, ((n % d) + n) % d是你正在寻找的东西。

链接地址: http://www.djcxy.com/p/58291.html

上一篇: Mathematical approach to derive Modulo expression

下一篇: Using Modulo to calculate remainder