菜鸟学算法----改进后的欧几里得算法

对于正整数 a和b  利用欧几里得算法可以得出 一个最大公因数 ,  改进后的算法满足  最大公因数 q=xa+yb   ;

那么我们如何求出 a和b呢 。

书上是这么写的 那么我们用代码把他实现出来, 向大家推荐一本书《The Art Of Computer.Programmer》   第一篇的数学部分   真心的枯燥 我选择的方式 是 适当的囫囵吞枣 对于这一样 ,但是对于其中讲述的算法 还是要仔细的去看滴 。

 

对于算法的分析  我直接上原书图

#include "stdafx.h"

//扩充的欧几里得算法
//对于正整数 a,b  有  m*a+n*b=r
//r 为最大公约数 这就是改进后的欧几里得算法
int _tmain(int argc, char**grav)
{
	int m = 1000, n = 255;
	int r;
	int t;
	int x = 0, x1 = 1, y1 = 0, y = 1;
	while ((r = m%n) != 0)
	{
		//改变x x1
		t = x1;
		x1 = x;
		x = t - (int)(m / n)*x;
		//改变y y1
		t = y1;
		y1 = y;
		y = t - (int)(m / n)*y;
       //改变 m<-n  n<-r
		m = n;
		n = r;
	}
	printf("x=%d,y=%d,余数=%d", x,y,n);
	return 0;
}
时间: 2024-10-27 20:34:19

菜鸟学算法----改进后的欧几里得算法的相关文章

菜鸟学算法--简单的交换和最大公约数算法入门篇

工作之后我们大部分的时间实在研究如何如何学习一门语言 如何如何掌握一门技术,但是作为编程的本质 数据结构和算法 我们慢慢的忽略了 . 工作后的很多程序员真的没有大学生一样的时间 去静下心来去增加自己的底蕴,这是我深有体会的事情当然我这里指的是和我有累死感觉的人. 学习是一个过程,从简入繁 一贯如此,记录下来只为 记录自己的点点滴滴. 算法的本质并不是我们程序员去创造算法 而是我们 按照先人创造的算法思想 用代码来实现算法. 下面开始介绍两个 简单的例子 一个是交换 一个是最大公约数算法. 简单的

继百度针对链接算法改进后,外链我们该怎么做

中介交易 SEO诊断 淘宝客 云主机 技术大厅 发现很多朋友经常在问,我的网站如何去做外链那.做外链应该注意什么问题.随着搜索引擎的算法调整,原来互联网上存在的大量的那些如何发外链的方式都已经无法去运营了.那么到底下一步到底该怎么去制造高质量的外链.首先我们先去关注一下搜索引擎对于我们外链是怎么要求的. 大家可以去看看这篇文章 "百度站长平台发布外链方面公http://zhanzhang.baidu.com/wiki/160"那么其中规定了很多方面.例如: 1.垃圾外链 .2.作弊外链

算法 数据结构-求两个数最大公约数,欧几里得算法

问题描述 求两个数最大公约数,欧几里得算法 求两个数最大公约数,欧几里得算法,这两种方法除第一种可以避免除数为零的情况,两者有什么区别?谢谢 public static int gcd(int p, int q) { if (q == 0) return p; int r = p % q; return gcd(q, r) ; } public static int gcd(int p, int q) { int r = p % q; if (r == 0) return q; return g

《趣题学算法》—第1章1.1节累积计数法

第1章 计数问题 趣题学算法 1.1 累积计数法 1.2 简单的数学计算 1.3 加法原理和乘法原理 1.4 图的性质 1.5 置换与轮换 人类的智力启蒙发端于计数.原始人在狩猎过程中为计数猎获物,手指.结绳等都是曾经使用过的计数工具.今天,我们所面对.思考的问题更加复杂.庞大,计数的任务需要强大的计算机来帮助我们完成.事实上,很多计算问题本身就是计数问题. 1.1 累积计数法 这样的问题在实际中往往要通过几个步骤来解决,每个步骤都会产生部分数据,问题的目标是计算出所有步骤产生数据的总和.对这样

【算法数据结构Java实现】欧几里得算法

1.背景            欧几里得算法是一个求最大因子的快速算法.如果m,n存在最大因子k,假设m=x*n+r,那么m和n可以整出k的话,r也肯定可以整除k            因为定理:如果M>N,则M mod N<M/2 ,说明时间复杂度是O(log(n)) 2.代码            package Algorithm_analysis; public class Euclid { public static void main(String[] args){ int m=6

算法整合后的图形绘制

某天下班回来后,习惯性的打开博客园,看看首页有没有感兴趣的文章.在 不重复随机数列生成算法 这 篇博文中,发现作者的思路不错.莫名其妙的突然想到如何获取随机颜色的算法以及以图形的方式显示出来, 那时候刚好12点了,想睡又睡不着,连着猛写了2个小时代码,大概模型出来了.随后的几天,将近期想到的 算法综合起来,因此就有了这么一篇文章. 这篇文章主要有如下3个简单的算 法,本人将它们结合起来练习练习手感. (1)不重复随机颜色数组算法 (2)坐标换行算法 (3)改进后的箭头算法 先看下用这3个算法实现

《趣题学算法》目录—导读

版权 趣题学算法 • 著 徐子珊 责任编辑 张 涛 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 内容提要 趣题学算法 本书共分10章.第0章讲解了算法的概念及体例说明.第1-7章分别就计数问题.信息查找问题.组合优化问题.图中搜索问题和数论问题展开,讨论了算法的构思和设计,详

想学算法,求由浅入深的学习资料。

问题描述 想学算法,求由浅入深的学习资料. 想学算法,求由浅入深的学习资料. 最好能有全套的学习资料,包括数据结构..... 解决方案 找本大学本科生用的数据结构和算法的教程即可(严蔚敏C语言版). 解决方案二: 数据结构说的算法已经是最简单最简单的了.一般来说,数据结构是紧跟着C语言程序后大学开的第二门课.再简单都简单不起来了. 解决方案三: 真正能算算法启蒙读物的应该是<编程珠玑>,不过现在对你来说都显得比较难. 系统学习可以看<算法导论>,一般的程序员达到这个程度就可以了.说

公交车路线查询系统后台数据库设计——换乘算法改进与优化

在<查询算法>一文中已经实现了换乘算法,但是,使用存储过程InquiryT2查询从"东圃镇"到"车 陂路口"的乘车路线时,发现居然用了5分钟才查找出结果,这样的效率显然不适合实际应用.因此,有 必要对原有的换乘算法进行优化和改进.在本文中,将给出一种改进的换乘算法,相比原有的算法,改进 后的算法功能更强,效率更优. 1. "压缩"RouteT0 假设RouteT0有以下几行 如下图所示,当查询S1到S4的二次换乘路线时,将会产生3×2