辗转相除法和穷举法的优缺点和特点

那位大哥大姐,帮帮忙!

  一、辗转相除法优缺点和特点

  辗转相除法的优点:在于它能以有系统的方式求出两数的最大公约数,而无需分别对它们作因式分解。大数的素因数分解被认为是一个困难的问题,即使是现代的计算机也非常难于处理,所以许多加密系统的原理都是建基于此。

  辗转相除法的缺点:运算繁琐、复杂、易错,从算法实现角度考虑,该方法 存在存储量大,运算时间长,运算速度慢等不足.

  辗转相除法特点:惟一分解,即这些数系中的数能够被惟一地分解成不可约元素(素数在这些数系的对应物)。

  辗转相除法原理:

  设两数为a、b(b<a),用gcd(a,b)表示a,b的最大公约数,r=a mod b 为a除以b以后的余数,k为a除以b的商,即a÷b=k.......r。辗转相除法即是要证明gcd(a,b)=gcd(b,r)。
  第一步:令c=gcd(a,b),则设a=mc,b=nc
  第二步:根据前提可知r =a-kb=mc-knc=(m-kn)c
  第三步:根据第二步结果可知c也是r的因数
  第四步:可以断定m-kn与n互质【否则,可设m-kn=xd,n=yd,(d>1),则m=kn+xd=kyd+xd=(ky+x)d,则a=mc=(ky+x)dc,b=nc=ycd,故a与b最大公约数成为cd,而非c,与前面结论矛盾】
  从而可知gcd(b,r)=c,继而gcd(a,b)=gcd(b,r)。
  证毕。

  二、穷举法的优缺点和特点

  穷举法的优点:算法简单。

  穷举法的缺点:运行时所花费的时间长。

  穷举法的特点:掌握利用穷举法解决问题的基 本要求;学会编写程序实现穷举法。

  例子:

  用穷举法解题时,就是按照某种方式列举问题答案的过程。针对问题的数据类型而言,常用的列举方法一有如下三种:
  (1)顺序列举 是指答案范围内的各种情况很容易与自然数对应甚至就是自然数,可以按自然数的变化顺序去列举。
  (2)排列列举 有时答案的数据形式是一组数的排列,列举出所有答案所在范围内的排列,为排列列举。
  (3)组合列举 当答案的数据形式为一些元素的组合时,往往需要用组合列举。组合是无序的。
  例子如下:在公元五世纪我国数学家张丘建在其《算经》一书中提出了“百鸡问题 ”:
  “鸡翁一值钱5,鸡母一值钱3,鸡雏三值钱1。百钱买百鸡,问鸡翁、母、雏各几何?”这个数学问题的数学方程可列出如下:
  Cock+Hen+Chick=100
  Cock*5+Hen*3+Chick/3=100
  显然这是个不定方程,适用于穷举法求解。依次取Cock值域中的一个值,然后求其他两个数,满足条件就是解。
温馨提示:答案为网友推荐,仅供参考
相似回答