高中计算机辗转相除法,高中数学的辗转相除法问题
满意答案
smrmhm
2013.06.03
采纳率:40% 等级:12
已帮助:12477人
辗转相除法 百科名片 欧几里德辗转相除法, 又名欧几里德算法(Euclidean algorithm)乃求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至3000年前。简单的想法 设两数为a、b(b<a),求它们最大公约数(a、b)的步骤如下:用b除a,得a=bq......r 1(0≤r)。若r1=0,则(a,b)=b;若r1≠0,则再用r1除b,得b=r1q......r2 (0≤r2).若r2=0,则(a,b)=r1,若r2≠0,则继续用r2除r1,……如此下去,直到能整除为止。其最后一个非零余数即为(a,b)。 原理及其详细证明 在介绍这个方法之前,先说明整除性的一些特点(下文的所有数都是正整数,不再重覆),我们可以这样给出整除性的定义: 对于二个自然数a和b,若存在正整数q,使a=bq,则a能被b整除,b为a的因子,a为b的倍数。 如果a能被c整除,并且b也能被c整除,则c为a、b的公因数(公有因数)。 由此我们可以得出以下推论: 推论1、如果a能被b整除(a=qb),若k为正整数,则ka也能被b整除(ka=kqb) 推论2、如果a能被c整除(a=hc),b也能被c整除(b=tc),则(a±b)也能被c整除 因为:将二式相加:a+b=hc+tc=(h+t)c 同理二式相减:a-b=hc-tc=(h-t)c 所以:(a±b)也能被c整除 推论3、如果a能被b整除(a=qb),b也能被a整除(b=ta),则a=b 因为:a=qb b=ta a=qta qt=1 因为q、t均为正整数,所以t=q=1 所以:a=b 辗转相除法是用来计算两个数的最大公因数,在数值很大时尤其有用,而且应用在电脑程式上也十分简单。其理论如下: 如果 q 和 r 是 m 除以 n 的商及余数,即 m=nq+r,则 gcd(m,n)=gcd(n,r)。 证明是这样的: 设 a=gcd(m,n),b=gcd(n,r) 证明: ∵a为m,n的最大公约数, ∴m能被a整除,且n也能被a整除, ∴由推论1得:qn也能被a整除, ∴ 由推论2得:m-qn也能被a整除, 又 ∵m-qn=r, ∴r也能被a整除,即a为n和r的公约数(注意:还不是最大公约数) ∵b为n和r的最大公约数,a为n和r的公约数 ∴a≤b, 同理 ∵b为n, r的最大公约数, ∴n能被b整除,且r也能被b整除, ∴由推论1得:qn也能被b整除, ∴由推论2得:qn+r也能被b整除, 又∵m=qn+r, ∴m也能被b整除,即b为m和n的公约数,(注意:还不是最大公约数) ∵a为m,n的最大公约数,b为m和n的公约数, ∴b≤a, 由以上可知: a≤b与b≤a同时成立, 故可得 a=b, 证毕。 例如计算 gcd(546, 429) gcd(546, 429) 546=1*429+117 =gcd(429, 117) 429=3*117+78 =gcd(117, 78) 117=1*78+39 =gcd(78, 39) 78=2*39 =39 [编辑本段]计算机算法自然语言描述 辗转相除法是利用以下性质来确定两个正整数 a 和 b 的最大公因子的: 1. 若 r 是 a ÷ b 的余数, 则 gcd(a,b) = gcd(b,r) 2. a 和其倍数之最大公因子为 a。 另一种写法是: 1. a ÷ b,令r为所得余数(0≤r<b) 若 r = 0,算法结束;b 即为答案。 2. 互换:置 a←b,b←r,并返回第一步。 流程图 流程图(当型) 伪代码 这个算法可以用递归写成如下: function gcd(a, b) { if b<>0 return gcd(b, a mod b); else return a; } c语言实现 /* 辗转相除法(递归)*/ #include int Gcd(int a,int b); int main(void ) { int m,n,t; printf("Enter the two figures:"); scanf("%d %d",&m,&n); printf("Gcd:%d\n",Gcd(m,n)); return 0; } int Gcd(int m,int n)//最大公约数 { int t; if(m
00分享举报
高中计算机辗转相除法,高中数学的辗转相除法问题相关推荐
- 高中计算机计划,高中信息技术教学计划
高中信息技术教学计划 教学计划是课程设置的整体规划,对学期.学年.假期进行划分.下面就是小编整理的高中信息技术教学计划,一起来看一下吧. 高中信息技术教学计划篇一 一.指导思想: 根据学生的具体情况, ...
- 高中计算机编辑程序,高中信息技术信息的编程加工教案
以下是出国留学网小编整理的高中信息技术<信息的编程加工>教案,供大家浏览参考.更多相关内容请关注出国留学网教案栏目. 高中信息技术<信息的编程加工>教案一: 一.教学目标 1. ...
- 教育实习手册高中计算机,农村高中信息技术课程教学现状与分析-- 基础教育调查实习报告...
农村高中信息技术课程教学现状与分析 -基础教育调查实习报告 摘要:农村高中信息技术教学存在课时设置不足.教学内容取舍困难.缺乏考核机制.课堂教学模式单调,难以调动学生的主动性等问题,在教学实践中,我们 ...
- 平遥高中计算机题,高中游历平遥古城作文
高中游历平遥古城作文 今天下午,我们一家三口,来到平遥古城游玩! 来到平遥古城后,我们一家三口买了票,便兴致勃勃的来到古城门口,我发现地上有许多小坑,爸爸便给我和妈妈讲,以前车马经常经过古城门口,由于 ...
- 职业生涯规划书高中计算机专业,高中职业生涯规划书生涯规划计算机我的近期目标...
技校网专门为您推荐的类似问题答案 问题1: 怎样做计算机专业职业生涯规划啊 计算机行业领域是相当广泛的,我现在学的就是网络方面的,不知道你们那学校里你学到的是?? 提问人的追问 2009-09-18 ...
- 北京高中计算机学,高中计算机——全国中小学计算机教育实验区北京市海淀区中学信息技术实验教材...
本书具有以下特点: 1 符合教育部关于加快中小学信息技术课程建设的指导意见的基本精神. 2 采用模块化结构,每一章对应一个基本模块,循序渐进.考虑到知识的连贯性和继承性,尽量减少重复内容,以使学生在有 ...
- 计算机与高中数学的整合,高中数学教学论文 计算机与数学教学的整合.pdf
计算机与数学教学的整合 如何搞好计算机辅助教学工作?这是每一个教师,特别是参与实验的教师经常思考的,当然 计算机辅助教学的优势及做法,从理论上讲已有许多论文.专著讲的头头是道,从实践上看, 有许多成功 ...
- 贵州学业水平计算机考试真题,贵州省2017年7月普通高中学业水平考试数学试卷(真题卷附全解析)...
贵州省2017年7月普通高中学业水平考试数学试卷(真题卷附全解析) 贵州省2017年7月普通高中学业水平考试数学试卷(附全解析) 一.选择题(本题包括35小题,每小题3分,共计105分) 1.已知集合 ...
- 上海高中开设计算机课,如何提升高中计算机课的趣味性
柏海琛 摘要:高中计算机课程是一门操作性很强的学科,但是作为高中生来讲,普遍都觉得现在的计算机课程比较单调.枯燥,很多学生包括笔者自己也觉得上课兴趣不高,课堂上老师讲的东西大多都在业余时间都比较熟悉了 ...
最新文章
- 解决:AttributeError: ‘Graph‘ object has no attribute ‘number_of_selfloops‘
- OpenAI联合创始人:AI的极限?我真的不知道!
- Ubuntu 16.04系统下CUDA8.0配置Caffe教程
- 360浏览器打不开网页_浏览器打不开网页是什么原因 打不开网页原因解决方法...
- element-ui Notification重叠问题,原因及解决办法
- 支持回调处理 php函数,PHP支持回调的函数有哪些?
- BmpEncrypt v3.20.1017 ++ 加密器
- 为ie和chrome FF单独设置样式的“条件注释法”、“类内属性前缀法”、“选择器前缀法”、实现方法 案例(推荐)
- P1546 最短网络 Agri-Net
- ajax请求整理(一) 2021.05.12
- 索纳塔9 2.4L旗舰版 一手原车 诚意出售
- JavaScript第6章上机练习2(使用jQuery美化英雄联盟简介页)上机练习3(制作非缘勿扰页面特效)
- 计算机表格怎么加减乘除,怎么在excel表格中计算加减乘除
- 利用ADB固定Android手机的CPU频率
- showToast的使用
- 不让用计算机怎么回怼,当别人怼你时,如何优雅地怼回去
- Altium designer AD原理图导入word文档、pdf,生成矢量图的方法;
- 微信小程序制作心得和体会
- html table space,html – white-space:nowrap中断显示:table
- linux关闭硬盘检测,关闭Linux开机强制检测硬盘