算法设计与分析基础:简单算法入门

本文介绍了算法设计的基础,包括欧几里得算法用于求最大公约数,欧几里得游戏的玩法及胜负判断,以及扩展欧几里得算法解决二元一次方程。此外,还详细阐述了埃拉托色尼筛法生成质数序列的原理和伪代码实现。
摘要由CSDN通过智能技术生成

1.欧几里得算法求最大公约数

欧几里得算法基于的方法是重复应用以下等式,直到m mod n等于0.
gcd(m,n) = gcd(n,m mod n).
gcd(m,0) = m,m最后的取值也就是m和n的初值的最大公约数

举例:
gcd(60,24) = gcd(24,12) = gcd(12,0) = 12

欧几里得算法gcd(m,n)描述:
1)如果n = 0,返回m的值作为结果,同时过程结束;否则进入第二步
2)m除以n,将余数赋给r
3)将n的值赋给m,将r的值赋给n,返回第一步

伪代码描述:
Euclid(m,n)
 while n != 0 do
  r = m mod n;
  m = n;
  n = r;
 return m;

2.欧几里得游戏

一开始黑板上有两个不同的数,两个玩家取两数的差,如果这个差不同于黑板上任何数,就写下来,轮到对方写;不能写出数的的一方为输家
考虑这样的两个数m和n,且m和n两个数是否互质的两种情况:
1)如果不是互质的,假定他们有最大公约数k >1;
 令m = rk,n = tk,根据定义可知r和t是互质的,
 那么差值(r-t)k,必然也是k的倍数,
 那么问题可以提取出来只考虑互质的情况,如果不是互质通过求最大公约数获得互质的r和t,问题一般化为互质数差值个数
2)两个数m,n是互质的,其中m>n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值