据我所知,在数学中,mod算子是欧氏除法剩余部分的结果。其中0≤r
然而,在编程中,有许多语言中的运算符,它们可以用来表示余数运算符或模运算符,它们在处理负值的方式上有所不同。
(我相信数学中的mod算子,编程中的剩余算子,以及编程中的mod算子,对于正数都有相同的结果)
根据Modulo operation with negative numbers
对于余数运算符,结果的符号与除数的符号相同,而对于模算子,结果的符号与除数相同。
所以编程中的mod运算符在数学上不是指mod运算符吗?
在编程中,答案的符号是mod算子和剩余算子之间的主要区别因素吗?
发布于 2019-04-14 00:54:25
从数学上讲,模数是群论的一部分,也是集合的思想。你可以用模数来生成集合中的所有数字。所以,如果你的集合是整数模10,你数0-9,然后从0开始。模下不存在负数的概念。
在编程中,剩余部分是在进行除法后剩下的部分。所以,如果你把3除以10,剩下的是0,剩下的是3。如果你把-3除以10,你得到的是-3的余数,而不是-1的余数7。但是数学模数是7。
那些设计我们现在使用的整数除法的人认为,将整数除以0更符合逻辑,而不是向负无穷远旋转,因此,由于必然的原因,负除法会导致负余数。
如果你想把一个余数转换成一个模数,你需要把你的模数加到任何负余数中,这样才能把它们映射到适当的范围。
https://stackoverflow.com/questions/55671058
复制相似问题