模与求余方面
2016-04-18 22:21
357 查看
先来介绍一个相关的题,给定一个整型判定是否为3的幂,一般的是否为n的幂,因为指数增长,可以用空间换时间的方式,先存下来进行判定。
下来介绍一下大整数取模的方法:
“`
a.(ab)mod n = (a mod n)(b mod n)mod n,可以得到
123456789*987654321 = () (快速做选择题) D: 121932631112635269
在这里我们介绍以下三个公式:
**(a+b)mod n = ((a mod n)+ (b mod n))mod n;
(a-b) mod n = ((a mod n )- (b mod n)+n)mod n;
ab mod n = (a mod n) (b mod n) mod n****
<1>.大整数取模(sicily 1020)
这里要利用到公式:(a+b) mod (n) = (a mod n) + (b mod n) mod (n);
把大整数写成自左向右的形式:1234 = ((1*10+2)*10+3)*10+4,然后利用前面这个公式,每步取模,算法如下
<2> 幂取模(sicily 1294)
这也是用到了同余的性质:xy mod c = (x mod c)* (y mod c) mod c
<3>模线性方程
题意:输入正整数a,b,n,解方程ax ≡ b (mod n) a,b,n<=109 。
解答:
* a ≡ b(mod n)的意思是说“a 和 b关于模n 同余 ”,即a mod n = b mod n。而a ≡ b mod n 的充要条件是: (a-b) 是n 的整数倍。 这样,这个问题就变成了ax-b是n的正整数倍。设这个”倍数”是y,则ax - b = ny,即ax - ny= b,因此,这个就回到了解不定方程的问题。
* 比如给定方程ax +by +c = 0,求出满足这个方程的整数解(x,y).这里,我们首先来学习扩展欧几里德算法——找出一对整数(x,y),使得ax+by = gcd(a,b),这里的x,y不一定是整数,也可能是负数或者0,例如gcd(6,15) = 3,6*3 - 15*1 = 3,其中x = 3,y=-1;这个方程还有其他解,比如x = -2,y = 1
下来介绍一下大整数取模的方法:
“`
a.(ab)mod n = (a mod n)(b mod n)mod n,可以得到
123456789*987654321 = () (快速做选择题) D: 121932631112635269
在这里我们介绍以下三个公式:
**(a+b)mod n = ((a mod n)+ (b mod n))mod n;
(a-b) mod n = ((a mod n )- (b mod n)+n)mod n;
ab mod n = (a mod n) (b mod n) mod n****
<1>.大整数取模(sicily 1020)
这里要利用到公式:(a+b) mod (n) = (a mod n) + (b mod n) mod (n);
把大整数写成自左向右的形式:1234 = ((1*10+2)*10+3)*10+4,然后利用前面这个公式,每步取模,算法如下
<2> 幂取模(sicily 1294)
这也是用到了同余的性质:xy mod c = (x mod c)* (y mod c) mod c
<3>模线性方程
题意:输入正整数a,b,n,解方程ax ≡ b (mod n) a,b,n<=109 。
解答:
* a ≡ b(mod n)的意思是说“a 和 b关于模n 同余 ”,即a mod n = b mod n。而a ≡ b mod n 的充要条件是: (a-b) 是n 的整数倍。 这样,这个问题就变成了ax-b是n的正整数倍。设这个”倍数”是y,则ax - b = ny,即ax - ny= b,因此,这个就回到了解不定方程的问题。
* 比如给定方程ax +by +c = 0,求出满足这个方程的整数解(x,y).这里,我们首先来学习扩展欧几里德算法——找出一对整数(x,y),使得ax+by = gcd(a,b),这里的x,y不一定是整数,也可能是负数或者0,例如gcd(6,15) = 3,6*3 - 15*1 = 3,其中x = 3,y=-1;这个方程还有其他解,比如x = -2,y = 1
相关文章推荐
- iOS UITableView的cell重用标识
- 区块链技术为何能改写全球金融版图
- Blockai致力于使用区块链技术保护…
- NetScaler端口开放
- 纽约比特币用户被指控非法转移资金
- perl学习记录
- 区块链技术将革新共享经济巨头
- 3.六种单例设计模式,嗯,强行六种
- 备受关注的区块链预测市场平台Augu…
- 金融专家认为比特币不够成熟
- 论比特币的分布式防御
- 比特币沉寂两年后弱复苏
- 微软否认停止接受比特币支付 …
- 区块链技术改变移动支付的8种方式
- C网CEO雇佣黑客找回被盗的比特币,…
- 消费者并不关心银行是否使用区块链
- 比特币和公共块链会加速智能合约的…
- Airbnb创始人着眼区块链技术 …
- 银监会发布的“风险警示”直指MMM金…
- UniCredit技术报告:银行业中区块…