zoukankan      html  css  js  c++  java
  • 辗转相除法的循环不变量证明

    循环不变量:在第2 - 6行的while循环的每次迭代开始时,a,b的最大公因数与A,B的最大公因数相同。

    循环不变量的性质:

    初始化:

           在循环的第一次迭代前,a = A,b = B,循环不变量显然成立。

    保持:

           对于这一性质的证明涉及到辗转相除法的数学原理。要证循环不变量的保持,只需证明a,b的最大公因数等于b,r的最大公因数。要证明这一点,只需证明a,b的因子集与b,r的因子集完全相同。

           根据这一数学原理:

        如果a是任一整数而b是任一大于零的整数,则我们总能找到一整数q,使得a = bq + r,这里r是满足不等式0 <= r <b的一个整数。

           显然,可以将某次循环中a,b,r的关系表示如下:a = qb +r.

           假设:u为a,b的任意一个因子,即a = su,b = tu. r = a - qb = su - qtu = (s - qt)u. 这里的s - qt显然为正整数。r可以整除u。故而得证b,r的因子集包含a,b的因子集。

           假设:u为b,r的任意一个因子,即r = su,b = tu。a = qb + r = qtu + su = (s + qt)u. 这里的s + qt显然为正整数。a可以整除u。故而得证a,b的因子集包含b,r的因子集。

           综上,可以证明a,b的因子集与b,r的因子集相等,故而得证。

    终止:

            在循环终止时,此时的r = 0,说明:此时a 可以整除b,即b为a,b的最大公因子。即此时的b为A,B的最大公因子。

                   

  • 相关阅读:
    1082 射击比赛 (20 分)
    1091 N-自守数 (15 分)
    1064 朋友数 (20 分)
    1031 查验身份证 (15 分)
    1028 人口普查 (20 分)
    1059 C语言竞赛 (20 分)
    1083 是否存在相等的差 (20 分)
    1077 互评成绩计算 (20 分)
    792. 高精度减法
    791. 高精度加法
  • 原文地址:https://www.cnblogs.com/zqybegin/p/13488886.html
Copyright © 2011-2022 走看看