|
本帖最后由 qian010421 于 2012-6-25 21:18 编辑
本人是函数新手,现在被这个简单的小学数学给搞糊涂了,还请高手们不要笑话!
mod是取余函数,比如mod(3,2)=1,就是3被2除的余数是1,没有问题。
但mod(-4,3)=2这个就引起了我的注意或者说疑惑,我知道,mod函数所得值的符号与除数是一致的,也就是说与“3”的符号一致,这里都是正数没有问题,但这个2又是怎么得来的呢?于是我百度了一下,说mod的值的运算过程是这样的:=除数(整商+1)-被除数,好,按照这个运算过程运算一下:mod(-4,3)=3*(1+1)-4=2,然后2取正值,所以mod(-4,3)=2,嘿嘿,所得正确,用excel2010验算也是正确的,确实结果为2,然后验算了mod(-5,3),根据运算过程:=3*(1+1)-5=1,然后1取正值(因为3为正值),所以mod(-5,3)=1,在excel2010里面验算也是这个结果。看来这个求值得公式是正确的。
好,还有个令人迷惑的:mod(9,4)这个值。根据小学数学知识,其余数等于1,这个没有问题,用excel2010验算也是这个结果,但是用上面那个运算过程检验一下:=4*(2+1)-9=3,然后取除数的符号正值,所得结果为+3,那么显然不对!
按照我对好几个结果的综合理解,结果看是不是这样得出来的:先以mod(-4,3)为例,-4除以3余数为-1,然后-1加上3,于是结果为+2,然后以mod(-9,4)为例,-9除以4余数为-1,然后-1加上4,于是结果为+3,然后以mod(-7,4)为例,-7除以4余数为-3,然后-3加上4,结果为+1;最后以mod(-7,-4)为例,-7除以-4余数为3,然后3加上-4,于是结果为+1。我上面这4个例子在excel2010里面验算均正确。当然,这是除数与被除数符号中有负值的演算过程,对于都是正值的情况就按小学数学来进行基本的判断了,就不需要再用余数加上除数了!
所以,现在我想求助于各位高手、老师,mod函数的运算过程究竟是怎么样的?或者是不是我对那个求值公式(=除数(整商+1)-被除数)的理解上出了什么问题?还是说这个求值公式本身就是错的?
|
|