poj1006 Biorhythms 中国剩余定理
2013-06-13 21:08
411 查看
参考:/article/1968939.html
有中文翻译.
思路:中国剩余定理.
中国剩余定理:
在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。
求解思路:
求出除3余1的a3, 且满足a3 / 5 == 0 && a3 / 7 == 0.很显然满足条件的a3 可以是: a3 = 5 * 3 * k, 求出 k 即可.
然后依次求得满足除5余1的a5, 除7余1的a7.
之前都是余1, 而三三数之剩二, 所以a3还需要乘以2, 即 a3 = a3 * 2, 同理, a5 *= 3, a7 *= 2.
那么a = a3+ a5 + a7 即是一个满足"孙子问题"的一个解.
但在这里我们要求得是最小解我们因此还需要除3, 5, 7的最小公倍数. 即 a %= lcm(3, 5, 7) .
本题思路:
体力p、感情e 和智力i 周期,它们的周期长度为23天、28天和33天,那么lcm(23, 28, 33) = 21252.
p23 = 5544, e28 = 14421,i33 = 1288.
a = (p23*p + e28*e + i33*i - d + 21252) % 21252
View Code
有中文翻译.
思路:中国剩余定理.
中国剩余定理:
在《孙子算经》中有这样一个问题:“今有物不知其数,三三数之剩二(除以3余2),五五数之剩三(除以5余3),七七数之剩二(除以7余2),问物几何?”这个问题称为“孙子问题”,该问题的一般解法国际上称为“中国剩余定理”。
求解思路:
求出除3余1的a3, 且满足a3 / 5 == 0 && a3 / 7 == 0.很显然满足条件的a3 可以是: a3 = 5 * 3 * k, 求出 k 即可.
然后依次求得满足除5余1的a5, 除7余1的a7.
之前都是余1, 而三三数之剩二, 所以a3还需要乘以2, 即 a3 = a3 * 2, 同理, a5 *= 3, a7 *= 2.
那么a = a3+ a5 + a7 即是一个满足"孙子问题"的一个解.
但在这里我们要求得是最小解我们因此还需要除3, 5, 7的最小公倍数. 即 a %= lcm(3, 5, 7) .
本题思路:
体力p、感情e 和智力i 周期,它们的周期长度为23天、28天和33天,那么lcm(23, 28, 33) = 21252.
p23 = 5544, e28 = 14421,i33 = 1288.
a = (p23*p + e28*e + i33*i - d + 21252) % 21252
#include <iostream> using namespace std; /* a, b 的最大公约数 */ int lcm(int a, int b) { int s = a * b; int t; while (b) { t = a % b; a = b; b = t; } return s / a; } /* 求得sum, a | sum && b | sum && sum % r == 1 */ int China(int a, int b, int r) { int t = lcm(a, b); int sum = t; while (sum % r!= 1) { sum += t; } return sum; } int main() { int p, e, i, d; //cout<<lcm(lcm(23, 28), 33)<<endl; int lcm = 21252; //cout<<China(23, 28, 33)<<endl; int i33 = 1288; //cout<<China(28, 33, 23)<<endl; int p23 = 5544; //cout<<China(33,23,28)<<endl; int e28 = 14421; int t; int cnt = 0; while (cin>>p>>e>>i>>d) { if (p == -1 && e == -1 && i == -1 && d == -1) break; t = (p*p23 + e * e28 + i * i33 - d + lcm) % lcm; t = t == 0 ? lcm : t; cout<<"Case "<<++cnt<<": the next triple peak occurs in "<<t<<" days."<<endl; } return 0; }
View Code
相关文章推荐
- POJ1006 UVA756 UVALive5421 Biorhythms【中国剩余定理】
- poj1006_Biorhythms_扩展欧几里得_中国剩余定理
- POJ 1006 Biorhythms [中国剩余定理] 超短代码
- POJ 1006 Biorhythms (数论-中国剩余定理)
- poj 1006 Biorhythms 中国剩余定理
- POJ 1006 Biorhythms(中国剩余定理 模板)
- POJ 1006 Biorhythms (数论-中国剩余定理)
- POJ 1006 Biorhythms【中国剩余定理】
- |poj 1006|中国剩余定理|Biorhythms
- poj 1006 Biorhythms 中国剩余定理
- poj 1006 Biorhythms 中国剩余定理
- POJ 1006 ——Biorhythms 中国剩余定理模板
- POJ 1006 Biorhythms 中国剩余定理/扩展欧几里得
- 【中国剩余定理 && 扩展欧几里德】 POJ - 1006 Biorhythms
- POJ-1006 Biorhythms 中国剩余定理
- poj 1006:Biorhythms(水题,经典题,中国剩余定理)
- POJ 1006 Biorhythms --中国剩余定理(互质的)
- poj1006 Biorhythms中国剩余定理
- POJ 1006---Biorhythms【中国剩余定理】
- Biorhythms(poj1006中国剩余定理)