a mod b计算技巧中的mod是什么意思?

modulus - Does a/b mod m = (a mod m)/(b mod m)? - Stack Overflow
Join Stack Overflow to learn, share knowledge, and build your career.
or sign in with
Does a/b mod m = (a mod m)/(b mod m)?
I am trying to find nCr mod m for very large numbers. If a/b mod m = (a mod m)/(b mod m) then
think I will have solved my problem.
It is for Project Euler. I am using the nCr formula using factorials.
15.2k43449
closed as off topic by , , , , ♦
Questions on Stack Overflow are expected to relate to programming within the scope .
Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope.
Read more about
here. If this question can be reworded to fit the rules in the , please .
If you have a=8, b=2, m=2 then you have a/b mod m = 8/2 mod 2 = 4 mod 2 = 0
and (a mod m)/(b mod m) = (8 mod 2)/(2 mod 2) = 0/0 = NaN
NaN is not equal to 0.
240k48319439
This identity does not hold. Here is a counter-example:
Let a = 21, b = 7, m = 7.
Then (21/7) = 3 and 3 mod 7 = 3
Alternately, 21 mod 7 = 0 and 7 mod 7 = 0.
But 0 / 0 is undefined (and certainly not 3).
Thus your identity does not hold. However, I am almost certain that it will hold if m and b are relatively prime.
You can use the following link to evaluate (a/b)mod m.....
The answer for evaluating is given at the end..
58.6k12108150
Not the answer you're looking for?
Browse other questions tagged
Stack Overflow works best with JavaScript enableda^2 mod b该怎么算?【linux吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:185,899贴子:
a^2 mod b该怎么算?收藏
假如a,b都是64位无符号整型,编译器最多也只支持64位整数的运算?
阿里云云市场镜像可以一键部署云服务器所需要的运行环境和个性化的软件应用,满足建站,应用开发,可视化管理等个性化需求,linux镜像让云服务器&即开即用&.
a*a mod b = ((a mod b) * a) mod b = (a mod b)*(a mod b) mod b
(a mod b) * (a mod b)不是有可能溢出么?
对,一开始考虑错了。那就用最简单的办法吧:(a mod b)依次相加,每当大于b的时候就减去b。
是个办法,但是太慢了,我想出来个方法,你看对不对。a*a mod b = ((((a+a)mod b)*(a/2))mod b + ((a%2)*a)mod b)mod b这样a*a mod b就转化为了(((a+a)mod b) * (a/2))mod b而如果a+a&a(溢出)的话(a+a)mod b= ((a+a)%b + (0xffffffffffffffff%b + 1)%b)%b,否则(a+a)mod b= (a+a)%b。这样二分下去,复杂度O(lg a) = O(64) = O(1),快很多。
这是什么语言?
数学语言……
是什么编译器?
30天免理由退款保障,每节课都可完整先试听.十年成功办学经验,中国电信实训基地
喂喂,别这样……是认真还是卖萌?我搞不清了。
一般编程语言都有取余运算符啊
但是,在计算机上a*a%b != a*a mod b,所以我要写mod。
首先运算次数虽然减少一些,但并不是很多。其次取余是高代价运算,而加减很快。所以你这个方法不见得速度快。还是实际写出来试试。
2^16 * 2^16 % (2^32-1) = 02^16 * 2^16 mod (2^32-1) = 1
这你说笑了吧?你的复杂度是O(a)的,我那个是O(lg a)的,还不是很多?假如a = 2^64-1,计算机每秒算10^8次,你那个算法要算五千多年,我的只要几ms,自己想想吧。
好像有印象
你不妨写出来试试。
另外,a mod b总是小于2^63的,而且a mod b总是小于b,所以你的方法不必做这种判断,针对(a mod b)^2计算即可。
请看题目,64位无符号整型。
别犟了,我写了,瞬间出解,你那种算法要是不算上几千年我直播吃电脑。
若b&2^63,则a mod b & 2^63,否则,a&2^64,b&=2^63,所以a mod b & a-b & 2^63。
写高精度…
比你那个方法慢倒是真的,算上几千年不至于。
POJ1001…再说计算器Linux都没有?
请问2^64-2 mod 2^64-1等于多少?
是不是平时你切条鱼都要用大砍刀的?
请你按你那个办法写个程序算(2^64-2)^2 mod 2^64-1,如果不算上几千年我把手砍了。
登录百度帐号推荐应用扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
a mod b = c 之中的mod是什意思?怎么读
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
“是a除以b的余数是几”的意思,读“摸得”
为您推荐:
其他类似问题
扫描下载二维码MOD运算_百度百科
清除历史记录关闭
声明:百科词条人人可编辑,词条创建和修改均免费,绝不存在官方及代理商付费代编,请勿上当受骗。
本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
mod运算,即求余运算,是在整数运算中求一个整数x除以另一个整数y的余数的运算,且不考虑运算的商。在计算机程序设计中都有MOD运算,它的含义是 取得两个整数相除后结果的余数。如:7 mod 3 = 1因为7 除以 3 商2余1,余数1即MOD运算后的结果。
MOD运算模p运算
给定一个正整数p,任意一个整数n,一定存在等式
n = kp + r 其中k、r是整数,且 0 ≤ r & p,称呼k为n除以p的商,r为n除以p的。
对于p和整数a,b,定义如下运算:
:a mod p 表示a除以p的余数。
模p加法:(a + b) mod p ,其结果是a+b算术和除以p的余数,也就是说,(a+b) = kp +r,则 (a+b) mod p = r。
模p:(a-b) mod p ,其结果是a-b算术差除以p的余数。
模p乘法:(a × b) mod p,其结果是 a × b算术乘法除以p的余数。
可以发现,模p运算和普通的四则运算有很多类似的规律,如:
((a+b) mod p + c)mod p = (a + (b+c) mod p) mod p
((a*b) mod p * c)mod p = (a * (b*c) mod p) mod p
(a + b) mod p = (b+a) mod p
(a × b) mod p = (b × a) mod p
((a +b)mod p × c) mod p = ((a × c) mod p + (b × c) mod p) mod p
(a×b) mod c=(a mod c * b mod c) mod c
(a+b) mod c=(a mod c+ b mod c) mod c
(a-b) mod c=(a mod c- b mod c) mod c
简单的证明其中第一个公式:
((a+b) mod p + c) mod p = (a + (b+c) mod p) mod p
a = k1*p + r1
b = k2*p + r2
c = k3*p + r3
a+b = (k1 + k2) p + (r1 + r2)
如果(r1 + r2) &= p ,则
(a+b) mod p = (r1 + r2) -p
(a+b) mod p = (r1 + r2)
再和c进行模p和运算,得到
结果为 r1 + r2 + r3 的算术和除以p的余数。
对右侧进行计算可以得到同样的结果,得证。
MOD运算模p相等
如果两个数a、b满足a mod p = b mod p,则称他们模p相等,记做
a ≡ b mod p
可以证明,此时a、b满足 a = kp + b,其中k是某个整数。
&/PRE&对于模p相等和模p来说,有一个和四则运算中迥然不同得规则。在中,如果c是一个非0整数,则
ac = bc 可以得出 a =b
&/PRE&但是在模p运算中,这种关系不存在,例如:
(3 x 3) mod 9 = 0
(6 x 3) mod 9 = 0
3 mod 9 = 3
6 mod 9 =6
&/PRE&定理(消去律):如果gcd(c,p) = 1 ,则 ac ≡ bc mod p 可以推出 a ≡ b mod p
因为ac ≡ bc mod p
所以ac = bc + kp,也就是c(a-b) = kp
因为c和p没有除1以外的公因子,因此上式要成立必须满足下面两个条件中的一个
1) c能整除k
如果2不成立,则c|kp
因为c和p没有公因子,因此显然c|k,所以k = ck'
因此c(a-b)=kp可以表示为c(a-b) =ck'p
因此a-b = k'p,得出a ≡ b mod p
如果a = b,则a ≡ b mod p 显然成立
MOD运算欧拉函数
欧拉函数是数论中很重要的一个函数,欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数的个数,记做:φ(n),其中φ(1)被定义为1,但是并没有任何实质的意义。
定义小于n且和n的数构成的集合为Zn,称呼这个集合为n的完全集合。
显然,对于素数p,φ(p)= p -1.对于两个素数p、q,他们的乘积n = pq 满足φ(n) =(p-1)(q-1)
证明:对于p,q,满足φ(n) =(p-1)(q-1)
考虑n的完全余数集Zn = { 1,2,....,pq -1}
而不和n的集合由下面三个集合的并构成:
1) 能够被p整除的集合{p,2p,3p,....,(q-1)p} 共计q-1个
2) 能够被q整除的集合{q,2q,3q,....,(p-1)q} 共计p-1个
很显然,1、2集合中没有共同的元素,因此Zn中元素个数 = pq - (p-1 + q- 1 + 1) = (p-1)(q-1)
MOD运算欧拉定理
对于互质的整数a和n,有a^φ(n) mod n = 1
首先证明下面这个命题:
对于集合Zn={x^1,x^2,...,x^φ(n)},考虑集合
S = {ax^1 mod n,ax^2mod n,...,ax^φ(n) mod n}
1) 由于a,n,x^i 也与n互质,则ax^i 也一定于n互质,因此
任意x^i, ax^i mod n 必然是Zn的一个元素
2) 对于Zn中两个元素x^i 和x^j,如果x^i ≠ x^j
则ax^i mod n ≠ ax^j mod n,这个由a、n互质和消去律可以得出。
所以,很明显,S=Zn
既然这样,那么
(ax^1 × ax^2×...×ax^φ(n))mod n
= (ax^1 mod n × ax^2 mod n × ... × ax^φ(n) mod n)mod n
= (x^1 × x^2 × ... × x^φ(n)mod n
考虑上面等式左边和右边
左边等于( (a^φ(n) × (x^1 × x^2 × ... × x^φ(n)))mod n
右边等于(x^1 × x^2 × ... × x^φ(n))mod n
而(x^1 × x^2 × ... × x^φ(n))mod n和p
根据消去律,可以从两边约去,就得到:
a^φ(n) mod n = 1 推论:对于互质的数a、n,满足a^(φ(n)+1) mod n = a
MOD运算费马定理
a是不能被质数p整除的正整数,则有ap-1≡ 1 mod p
证明这个定理非常简单,由于φ(p) = p-1,代入即可证明。
同样有推论:对于不能被p整除的正整数a,有ap≡ a mod p
MOD运算进一步应用
有关mod的一道证明题
不用,证明[a,b](a,b)=|ab|
证明:在中,证明有一种常用的方式,就是证明两边互为整除,此题也不例外,只是要先移
|ab|/(a,b)=|a|(|b|/(a,b))=&
a|(|ab|/(a,b))
同理有:b|(|ab|/(a,b))
于是,|ab|/(a,b)是a,b的,即[a,b]|(|ab|/(a,b))
∵|a||[a,b]
∴(|a|/(a,b))|([a,b]/(a,b))
同理:(|b|/(a,b))|([a,b]/(a,b))
又∵(|a|/(a,b))与(|b|/(a,b))
∴(|ab|/(a,b)²)|([a,b]/(a,b))
∴(|ab|/(a,b))|[a,b]
综上所述,[a,b](a,b)=|ab|.
设m,m′都是正整数,d=(m,m^),b≡b^(mod d).证明系统
x≡b(mod m) ①
x≡b^(mod m^) ②
的任意两个解都是模ρ同余,其中ρ=lcm{m,m^}.
证明:设y是满足的另外一个解,则有:y≡b(mod m) ③
y≡b^(mod m^) ④
∵x≡b(mod m),∴x≡b(mod m/d), y≡b(mod m/d)
两式相减,则有x-y≡b-b≡0≡(mod m/d)
∴x≡y(mod m/d)
同理:x≡y(mod m^/d)
∵(m/d,m^/d)=1
∴x≡y(mod mm^/d²)
设y=x+kmm^/d²
分别代入③,④中,并结合①,②,则有
x+kmm^/d²≡b≡x(mod m) =&kmm^/d²≡0(mod m)
x+kmm^/d²≡b^≡x(mod m^) =&kmm^/d²≡0(mod m^)
即:m|kmm^/d²=&km^/d²为整数=&(m^/d)(k/d)为整数
m^|kmm^/d²=&km/d²为整数=&(m/d)(k/d)为整数
显然,(m^/d,d)=1与(m/d,d)=1至少有一个成立,否则(m,m^)=d²,矛盾.
∴k=ld,y=x+lmm^/d,
而mm^/d=|mm^|/(m,m^)=[m,m^]=ρ=lcm{m,m^}
∴y=x+lρ=&
y≡x(mod ρ)
清除历史记录关闭扫二维码下载作业帮
3亿+用户的选择
下载作业帮安装包
扫二维码下载作业帮
3亿+用户的选择
关于同余的疑惑,amodb和a=b(modm)有什么区别
作业帮用户
扫二维码下载作业帮
3亿+用户的选择
举一个简例就很好说明了.————————————————————————a==b mod m 表示一个同余关系.例如 1==8 mod 70==7 mod 7实例可以是:对于某些人来讲,星期天就是星期七,星期一就是星期八.————————————————————————b mod m只是上式的一部分.例如 8 mod 7,意义有:1) 表示 求8除以 7所得的余数,有些时候为了强调求余,可能会写成 8 rem 7.在某些数学软件中会有这样的用法.如matlab之类.其中rem 表示remainder,即余数.2)表示一个同余类,相当于集合 { 8+7t;其中t为整数} ,也可以是 8±7t.在此意义下,与 1 mod 7是完全等价的.用此观点独立的理解 b mod 7,可以更好的理解什么是同余关系.
为您推荐:
其他类似问题
扫描下载二维码}

我要回帖

更多关于 a mod b 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信