Project1
标题:
代入和取模
[打印本页]
作者:
thomaskkkk
时间:
2010-11-9 19:35
标题:
代入和取模
本帖最后由 thomaskkkk 于 2010-11-10 21:55 编辑
請問變數中的代入和取模有什麼分別??
我又可以怎樣活用這兩個功能?
作者:
八云紫
时间:
2010-11-9 19:37
代入就是赋值, 把某个变量赋值成某个值.
取模是求余, 14 % 5 = 4
作者:
苏小脉
时间:
2010-11-9 20:54
取模就是取模,和取余颇有不同(负数时);你在学校的数学课上迟早会学到的。
作者:
你爹
时间:
2010-11-9 20:56
提示:
作者被禁止或删除 内容自动屏蔽
作者:
thomaskkkk
时间:
2010-11-9 21:47
回复
你爹
的帖子
那真是好的建議,奈何對英文的興趣太低,先感謝你。
作者:
thomaskkkk
时间:
2010-11-9 21:49
回复
铃仙·优昙华院·因幡
的帖子
我比較想理解取模的定義,
和用取模可以製造出什麼樣的效果嗎?
作者:
八云紫
时间:
2010-11-9 22:10
本帖最后由 铃仙·优昙华院·因幡 于 2010-11-9 22:11 编辑
“模”实质上是计量器产生“溢出”的量,它的值在计量器上表示不出来,计量器上只能表示出模的
余数。任何有模的计量器,均可化减法为加法运算。
例如: 假设当前时针指向10点,而准确时间是6点,调整时间可有以下两种拨法:
一种是倒拨4小时,即:10-4=6
另一种是顺拨8小时:10+8=12+6=6
在以12模的系统中,加8和减4效果是一样的,因此凡是减4运算,都可以用加8来代替。
对“模”而言,8和4互为补数。实际上以12模的系统中,11和1,10和2,9和3,7和5,6和6都有这个特
性。共同的特点是两者相加等于模。
对于计算机,其概念和方法完全一样。n位计算机,设n=8, 所能表示的最大数是11111111,若再
加1称为100000000(9位),但因只有8位,最高位1自然丢失。又回了00000000,所以8位二进制系统的
模为2(8)。
“模”是指一个计量系统的计数范围。如时钟等。计算机也可以看成一个计量机器,它也有一个计量范
围,即都存在一个“模”。例如:
时钟的计量范围是0~11,模=12。
表示n位的计算机计量范围是0~2(n)-1,模=2(n)。【注:n表示指数】
① 求余:取整除后的余数。例如:
10 MOD 4=2; -17 MOD 4=-1; -3 MOD 4=-3; 4 MOD (-3)=1; -4 MOD 3=-1
如果有a MOD b是异号,那么得出的结果符号与a相同;当然了,a MOD b就相当于a-(a DIV B ) *b的运算。例如:
13 MOD 4=13-(13 DIV 4)*4=13-12=1
② 求模:规定“a MOD b”的b不能为负数,其运算规则如下:
(i)当a>b时,不断从a中减去b,直到出现了一个小于b的非负数。
例如: 8 MOD 3=2
(ii)当a<b,且a>0时,结果为a。如:
3 MOD 8=3
(iii)当a<b,且a<0时,则b不断地加到a上,直到结果是一个小于b的非负数为止。如:
-3 MOD 4=1; -4 MOD 3=2
注意:当a、b全为正数时,无论是“求余”还是“求模”,得到的结果是相同的。如:22 MOD 6=4;只有a<0当时,两种运算结果不同。
例如:n为四位数7341。可用下面的方法分离出它的个、十、百、千位。
7341 MOD 10=1 (个位数)
(7341 MOD 100) DIV 10=3 (十位数)
(7341 MOD 1000) DIV 100=3 (百位数)
7341 DIV 1000=7 (千位数)
此外,利用a MOD b,可以判断a能否被b整除。当a MOD b=0时,a能被b整除。
注意:a、b都必须为整数。如:50.0 MOD 20.0是不可以的。
数学意义上的取模运算是:a # b ( mod c)。读作“a与b在模c下相合”。比方:23 # 3 ( mod 4)。其实就是表达了(23 - 3)为4的整倍数这样一个事实。
-7 % 3 = -1
7 % -3 = 1
-7 % -3 = -1
先化为正数模除
结果值与被模除数同号
http://blog.csdn.net/Hunnad/archive/2008/09/19/2953994.aspx
作者:
cnchen0708
时间:
2010-11-9 23:11
回复
thomaskkkk
的帖子
取模就是取余,小学数学的余数知道吧?就是那个东西..
作用么貌似没发现有什么大的,小的就很多了..例如在用除法之后的操作中,出现除不尽情况就可以用到了.
作者:
禾西
时间:
2010-11-10 10:52
取模和取餘還是有區別的,雖然ruby中%是取模:
class Numeric
# 取模
def mod(n)
self - (self/n).floor * n
end
#取餘
def rem(n)
self - (self/n).truncate * n
end
end
p 5.mod(2.0) , 5%2.0, 5.rem(2.0) #=> 1, 1, 1
p 5.mod(-2.0), 5%-2.0, 5.rem(-2.0) #=> -1,-1, 1
p -5.mod(2.0) , -5%2.0, -5.rem(2.0) #=> 1, 1,-1
p -5.mod(-2.0), -5%-2.0,-5.rem(-2.0) #=> -1,-1,-1
复制代码
作者:
summer92
时间:
2010-11-10 10:57
取模,呵呵,其实高中课本里有,就是除那个数剩下的余数,在数学中似乎没多大用处,但在程序中成为神的存在,有好了,效率很高,运算使用%,能做各种各样的处理,以上的我的观点,介样LZ应该明白了把
作者:
八云紫
时间:
2010-11-10 11:08
模运算在加密上用的很多.
另外在欧几里得算法啦什么算法里经常用到模运算.
作者:
苏小脉
时间:
2010-11-10 21:14
summer92 发表于 2010-11-10 10:57
取模,呵呵,其实高中课本里有,就是除那个数剩下的余数,在数学中似乎没多大用处,但在程序中成为神的存在,有好 ...
在抽象代数里自有用处;对于数论,模运算定义了同余类数系,也是各类同余问题的基本概念,像经典的“物不知数”,就是中国早在公元前便已设下的同余题目,乃至于后世的西洋算学中以“中国余数定理”来引用这个命题。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1