算法分析与设计狼找兔子.ppt

算法分析与设计狼找兔子

算法分析与设计 狼吃兔子问题 算法演示 问题分析 我们先做一个假设,你围着400米的环形跑道跑步,分多次(整数次)跑,每次跑150米,如果你想回到原出发点,那么毫无疑问你跑的最短总路程为400米的整数倍同时也是150米的整数倍并且为最小公倍数1200米,需要经过1200/150=8次奔跑。 经过以上分析,我想你已经明白了狼找兔子经过的最小总山洞数目为n、m的最小公倍数,假设该公倍数为k,那么狼搜索过的山洞为k/m个。如果完成整个过程狼搜索过的山洞为n,那么兔子便无处藏身(即k/m=n亦即k=m*n)。在数学中我们已经知道(m*n)/(m,n的最大公约数)=k,由此可知当最大公约数为1时刚好满足兔子无藏身之地,同时我们也可以知道m、n的最大公约数不为1时兔子有藏身之地。 公约数法 search_rabbit流程 系统介绍 时间复杂度分析 时间复杂度分析 总体上讲,程序运行的时间随着山洞的数目(n)增大而增大,同时程序运行的总时间与每次跳过山洞的数目有关,如果山洞数目n可以整除每次跳过的数目m,那么程序相对来说会快一点结束,速度关系大致是这样: n整除m n和m公约数不为1 其他 时间复杂度分析 时间复杂度分析 程序运行时间T=执行(p=p-next)m,n的最小公倍数次的时间T1+执行(p-state=1)m/m,n的最大公约数次的时间T2。 因

文档评论(0)

1亿VIP精品文档

相关文档