算法01-欧几里得算法

前言:

从事计算机行业,如果不懂算法,那么很难使自己的技术水平有一个质的提升,自觉自己的算法基础比较薄弱,因此开此篇算法系列,以督促自己在程序猿的道路上越走越远😝!

正文:

既然是开篇,俗话说万事开头难,笔者就先来个简单点的吧。

欧几里得算法:
自然语言描述:
计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p。否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数。
C语言实现:
int gcd(int p,int q){
    if (0==q) {
        return p;
    }
    int r = p%q;
    return gcd(q, r);
}
欧几里德算法的思想:

辗转相除法是欧几里德算法的核心思想,欧几里德算法说白了其实就是辗转相除法的计算机算法的实现而已。下面我们先说说辗转相除法,辗转相除法的内容:如果用gcd(a,b)来表示a和b的最大公约数,那么根据辗转相除法的原理,有gcd(a,b)=gcd(a,a mod (b)),其中mod()表示模运算,用C语言表示模运算a%b,即a除以b取余,并且不妨让a>b,这样方便于模运算。

辗转相除法的正确性gcd(a,b)=gcd(a,a mod (b))的证明:
First:令c为a和b的最大公约数,数学符号表示为c=gcd(a,b)。因为任何两个实数的最大公约数c一定是存在的,也就是说必然存在两个数k1,k2使得a=k1*c, b=k2*c;
Second:a mod (b)等价于存在整数r,k3使得余数r=a – k3*b;
即r = a – k3*b
      = k1*c – k3*k2*c
      = (k1 – k3*k2)*c
显然,a和b的余数r是最大公约数c的倍数!

结语:

此篇为算法100篇系列的第一篇,后续会有陆续的篇章推出,由易到难循序渐进,共同加油,欧耶✌️!
未完待续...

不积跬步,无以至千里;不积小流,无以成江海。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • 首先重点讲解中国剩余定理,举例:一个数x除d1余r1,除d2余r2,除d3余r3,那么,求这个数的最小值 。解答:...
    碧影江白阅读 2,159评论 0 2
  • 基本运算 取模(mod)取余(rem) 定义 给定一个正整数p,任意一个整数n,一定存在等式 : n = kp +...
    passwd_阅读 1,471评论 0 3
  • 辗转相除法是用来计算两个整数的最大公约数。假设两个整数为a和b,他们的公约数可以表示为gcd(a,b)。如果gcd...
    卷帘门阅读 6,222评论 0 3
  • 欧几里德算法 欧几里德算法又称辗转相除法,用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理: gcd...
    鱼山樵子阅读 503评论 0 1
  • 朱哲琴说,她在很小的时候就发现了听觉的魅力,透过聆听,他不断的发现这个世界的秘密,然后,透过聆听,她学会了唱歌。从...
    蛛周柱木穷羊阅读 267评论 0 0