zoukankan      html  css  js  c++  java
  • 辗转相除法求最大公约数

    辗转相除法是欧几里德提出的。

    苏格拉底、柏拉图、亚里士多德是师生,而柏拉图创立了柏拉图学院,欧几里德曾在柏拉图学院学习,而前三位大家都是哲学家,欧几里德是数学家。后来哲学家从欧几里德所著的《几何原本》中获得启发,根据数学使用的推理演绎的方法,进行哲学研究。《几何原本》在最初规定了几条公理,后面的内容都是根据前面的公理推导出来的。

    辗转相除法应用于求最大公约数的算法证明过程。

    已知:

    1、m>n, m ÷ n = a……b
    2、gcb表示两个数的最大公约数,c = gcb(m,n),d = gcb(n,b)
    证明:c = d

    1.
    m = k1*c
    n = k2*c
    b = m-na = (k1-k2*a)c
    ∴n、b有公约数c
    ∵d = gcb(n,b)
    ∴c ≤ d

    2.
    n = k3*d
    b = k4*d
    m = na+b = (k3*a+k4)*d
    ∴m、n有公约数d
    ∵c = gcb(m,n)
    ∴d ≤ c

    综上:d = c

  • 相关阅读:
    Lombok介绍、使用方法和总结
    Vargant centOS7安装
    Nginx
    Docker
    GOPATH
    Golang http
    /^正则表达式$/
    go: missing Git command. See https://golang.org/s/gogetcmd
    Golang 反射
    Golang 常量
  • 原文地址:https://www.cnblogs.com/pukaifei/p/5504336.html
Copyright © 2011-2022 走看看