韩信点兵--中国剩余定理
传说西汉大将韩信,由于比较年轻,开始他的部下对他不很佩服。有一次阅兵时,韩信要求士兵分三路纵队,结果末尾多2人,改成五路纵队,结果末尾多3人,再改成七路纵队,结果又余下2人,后来下级军官向他报告共有士兵2395人,韩信立即笑笑说不对(因2395除以3余数是1,不是2),由于已经知道士兵总人数在2300?/FONT>2400之间,所以韩信根据23,128,233,------,每相邻两数的间隔是105,便立即说出实际人数应是2333人(因2333=128+20χ105+105,它除以3余2,除以5余3,除以7余2)。这样使下级军官十分敬佩,这就是韩信点兵的故事。
简化:已知 n%3=2,n%5=3,n%7=2,求n。
再看我们这道题,读入p,e,i,d 4个整数,已知(n+d)%23=p; (n+d)%28=e; (n+d)%33=i ,求n 。
韩信应该是这样算的:
因为n%3=2,n%5=3,n%7=2且3,5,7互质
使5×7被3除余2,用35×2=70;
使3×7被5除余1,用21×1=21;
使3×5被7除余1,用15×1=15。
(70×2+21×3+15×2)%(3×5×7)=23
#include <stdio.h>
#include <stdlib.h>int main()
{int f1 = 3,f2 = 5,f3 = 7;int q1 = f2*f3*(f2*f3%f1),q2 = f1*f3*(f1*f3%f2),q3 = f1*f2*(f1*f2%f3);int a,b,c;int ans;int i = 0;while(~scanf("%d%d%d",&a,&b,&c)){i++;ans = (q1*a+q2*b+q3*c)%(f1*f2*f3);if(ans>=10&&ans<=100)printf("Case %d: %d\n",i,ans);else printf("Case %d: No answer\n",i);}return 0;
}
韩信点兵--中国剩余定理相关推荐
- 韩信点兵-中国剩余定理(练习)
http://acm.nyist.net/JudgeOnline/problem.php?pid=34提交地址 韩信点兵-中国剩余定理. 题目能够用枚举非常easy的做出来,在这里写是为了运用一下刚刚 ...
- 中国剩余定理(Chinese Remainder Theorem)
中国剩余定理 民间传说着一则故事--"韩信点兵". 秦朝末年,楚汉相争.一次,韩信将1500名将士与楚王大将李锋交战.苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿 ...
- 为什么计算机的编码那么多,为什么中国剩余定理可用于计算机编码?
我们已经知道了"中国剩余定理",即"韩信点兵"问题,它是中国古代数学中的一项重大成就,其内容属于数论中的一次同余数组的解法.而这一古老的知识,现在在计算机编码方 ...
- 【一级讲解】韩信点兵——中国剩余定理
韩信点兵 相传韩信才智过人,从不直接清点自己军队的人数,只要让士兵先后以三人一排.五人一排.七人一排地变换队形,而他每次只掠一眼队伍的排尾就知道总人数了.输入3个非负整数a,b,c ,表示每种队形排尾 ...
- 三人同行七十稀 - 中国剩余定理浅析
我国明朝有位大数学家叫程大位,他在解答"物不知其数"问题(即:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩2,问物几何?)用四句诗概括这类问题的解决: "三人同 ...
- 韩信点兵 中国剩余定理
1077 韩信点兵 时间限制:500MS 内存限制:65536K 提交次数:1103 通过次数:99 题型: 编程题 语言: G++;GCC Description 相传汉高祖刘邦问大将军韩信统 ...
- 数论 · 中国剩余定理(CRT)
UPDATE 2021 - 12 - 10:补充扩展中国剩余定理 EXCRT,额外开了一篇博客写. 2021 - 12 - 21:修改了一两句话,更严谨一些. 问题概述 小奥里的韩信点兵问题: { x ...
- 数论-中国剩余定理(crt) 与拓展中国剩余定理(excrt)
中国剩余定理(crt) [用途] 求方程组中最小的非负整数解X X ≡ { a 1 ( m o d m 1 ) a 2 ( m o d m 2 ) . . . a n ( m o d m n ) X\ ...
- 小议中国剩余定理兼怀金庸
本是几个月前整理完备hash构造时打算写的,不意拖到了金庸先生去世.<射雕英雄传>中那一次精彩绝伦的数学启蒙,不亚于光明顶上张无忌出尽风头的擂台秀.瑛姑与黄蓉的几轮口头交锋,涵盖了n阶幻方 ...
- 从韩信点兵和勾股弦说起—— 漫谈基础数学的古今中外
从韩信点兵和勾股弦说起-- 漫谈基础数学的古今中外 前言 基础数学的范畴,大体上也就是现代中学和大一数学课程中所要学的代数.几何与分析的基础知识:它不但是数学的根本,也是整个科技发展的基础,可以说是人 ...
最新文章
- shell sh: 1: matlab: not found 解决方案
- django部署iiswin10_基于Windows平台的Django在本地部署和腾讯云服务器上部署的方法教程(一)...
- (4)段描述符P,G位
- 用Macbook开发桌面应用,使用Alamofire链接.Net Core Webapi的注意事项!
- MFC菜单栏(CMenu)控件
- BZOJ1179 Atm //缩点+spfa
- NotifyMyFrontEnd 函数背后的数据缓冲区(一)
- Vim/Vi常用操作(第二版)
- node.js go java_ABAP,Java, nodejs和go语言的web server编程
- Linux命令收藏-进程管理
- python logging默认情况下打印_python logging日志打印过程解析
- 前人栽树,后人擦屁股
- 如何提高数据分析的效率
- 3.4 RNN网络扩展:堆叠RNN、递归神经网络、图网络
- jQuery打造智能提示插件
- 数据科学家为什要用Git?怎么用? 1
- synchronize——对象锁和类锁
- 计算机EXE文件改参数,exe文件修改器(eXeScope)
- win7升级自带ie8到ie11版本(在不能联网的状态下)
- B站视频下载与字幕下载转换