韩信点兵-中国剩余定理(练习)
http://acm.nyist.net/JudgeOnline/problem.php?pid=34提交地址
韩信点兵-中国剩余定理。
题目能够用枚举非常easy的做出来,在这里写是为了运用一下刚刚学习的中国剩余定理。
曾经写过中国剩余定理的博客在这就不多说了。
假设以下的字母看不懂请看我的还有一篇博客http://blog.csdn.net/u010123208/article/details/24314627
说一说思路吧。
1.首先我们要用数组存储我们的要的除数。和余数。
我们用m[]来存储,余数我们用a[]来存储。
2.接下来我们要计算M了 ,然后是mi mi的值我用mm[]来存储的。
3.如今基本的任我就是计算mi的逆元了。
计算逆元我们当然要用扩展欧几里得定理了。注意在用扩展欧几里得定理的时候我们会遇到这种问题,返回的结果是个负数。举个样例就是 m1的逆元 mm[1]x + m[1]y = 1;返回x=-1,y=12,这个但是这不是我们想要的数值。我们能够用m[1]+x = 2; mm[1]-y=23;(这个结论是我在群里问他们,他们说自己计算一下。详细的也没说。我就突然想到这样来计算试试,结果真行。我又试了几个,也行,这详细如何我也不知道。希望有看到博客对扩展欧几里得定理比較清楚的给我留下言,我请教一下。在这谢谢了)。
4 我们须要的东西都已经求出来了。我们就能够计算结果了。(假设不知道请看我的还有一篇博客中介绍的)
以下贴出代码,代码仅仅是为了练习而已,对于上面的题目而言,提交肯定会错的,由于。。
。可是仅仅对于我们的中国剩余定理来时是正确的。
#include<iostream>
using namespace std;
int exgcd(int i,int j,int &ansx,int &ansy) //扩展欧几里得定理
{ int d = i; if(j==0) { ansx=1; ansy=0; return d; } d=exgcd(j,i%j,ansx,ansy); int temp = ansx; ansx=ansy; ansy=temp-(i/j)*ansy; return d;
}
int main()
{int a[4];//余数for(int i=1;i<4;i++)cin>>a[i];int m[4]={0,3,5,7};//取模的数 质数int mm[4]={0,35,21,15};int t[4];//逆元for(int i=1;i<4;i++){int x,y;exgcd(mm[i],m[i],x,y);if(x<0)x=m[i]+x;t[i]=x;}int sum=0;for(int i=1;i<4;i++){sum=sum+t[i]*a[i]*mm[i];}cout<<sum%105<<endl;system("pause");
}
好了!
感谢自己坚持。
转载于:https://www.cnblogs.com/mengfanrong/p/5186838.html
韩信点兵-中国剩余定理(练习)相关推荐
- 中国剩余定理(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阶幻方 ...
- 从韩信点兵和勾股弦说起—— 漫谈基础数学的古今中外
从韩信点兵和勾股弦说起-- 漫谈基础数学的古今中外 前言 基础数学的范畴,大体上也就是现代中学和大一数学课程中所要学的代数.几何与分析的基础知识:它不但是数学的根本,也是整个科技发展的基础,可以说是人 ...
最新文章
- seajs的CMD模式的优势以及使用
- 51 nod 1624 取余最长路 思路:前缀和 + STL(set)二分查找
- OpenSSL再曝CCS注入漏洞-心伤未愈又成筛子
- react改变checkbox的文字类型_React Checkbox不发送onChange
- 开课吧Web:学习Web前端技术有哪些好处?
- java中的saturn_Saturn分布式调度平台系列:高屋建瓴之设计原理简析
- 寻找与黄金分割点最近的商
- 基于SSM的概念可视化程序设计学习系统毕业设计源码021009
- 微信开发者工具 缓存目录
- Kotlin 之 lateinit关键字 与lazy
- 安得广厦千万间,大赚天下寒士俱欢颜
- linux删除指定的行
- 人工智能技术在教育领域中的应用
- [事件知识图谱] EventKG: A Multilingual Event-Centric Temporal Knowledge Graph
- 基于深度学习算法的语音识别(华为云)
- Linux Watchdog/看门狗
- JavaScript 进阶知识 - Ajax篇
- 格式工厂 wav 比特率_DRmare Audio Converter——音频格式转换工具
- webots自学笔记(九)弹簧与阻尼添加
- Ae501 100+图形拼接马赛克过渡效果图像幻灯片工具包含垂直竖屏版ae模板
热门文章
- 一篇文章讲清楚人工智能、机器学习和深度学习的区别和联系
- 渲染到ui_虚幻4渲染编程(UI篇)【第二卷:程序化UI特效-[1]】
- js svg语音波动动画_SVG实现环形进度条的原理
- mysql中以下正确的sql是_总结MySQL中SQL语法的使用
- 014_insert into select语句
- 008_Gson从序列化中排除字段
- c语言的非法字符常量,判断C语言数值常量是否合法?为什么不合法?
- html 背景设为透明背景图片,Three.js中通过透明渲染设置默认背景图片
- 需求分析的过程是什么?_7大需求分析方法与5大分析过程
- python3模块socket怎么安装_Python中socket模块的使用方法(一)