POJ 1006 生理周期(中国剩余定理/模拟)

 

中国剩余定理

用来解决以下问题:

对于N两两互质的整数,求最小公解XX满足X mod N1 = A1, X mod N2 = A2……X mod Nn = An

 

我国有一本数学古书「孙子算经」有这样一道问题:「今有物,不知其数,三三数之,剩二;五五数之,剩三;七七数之,剩二。问物几何?」

意思是一个整数除以三余二,除以五余三,除以七余二,求这个整数(满足条件且最小)

 

做法是:

n%3=2,n%5=3,n%7=2357互质

 找到使(5×7)的倍数模31的数,答案是70

 找到使(3×7)的倍数模51的数,答案是21

 找到使(3×5)的倍数模71的数,答案是15

那么

(70×2+21×3+15×2) % (3×5×7) = 23,23就是最终答案了

理解如下:

70×2 = 140,当中的2是指n%3 = 22,因为70%3=1,乘2后使其能满足%3=2的条件,同理,

21×3使其能满足%5=3

15×2使其能满足%7=2

70能整除5721能整除37,15能整除35

因此70×2+21×3+15×2 = 233能满足%3=2,%5=3,%7=2的条件

2333×5×7=105取模,是为了取得最小的情况,因为105是能够同时整除357的数,如果减去,对该数满足%3=2%5=3%7=2没有影响。因此对105取模,得到的结果便是最小并满足条件的数

 

 

 

同理,这一题的做法可以类比上面的方法

 找到使(23×28)的公倍数模331的数,答案是1288

 找到使(23×33)的公倍数模281的数,答案是14421

 找到使(28×33)的公倍数模231的数,答案是5544

(5544×p+14421×e+1288×i) % (23×28×33) = ans + d

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值