算法
RadonMar
从事电信业的软件研发工作
展开
-
约瑟夫环非递归算法分析
【Joseph问题描述】n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出,剩下的人继续从0开始报数。求胜利者的编号。 【求解思路】我们知道第一个人(编号一定是m%n-1) 出列之后,剩下的n-1个人组成了一个新的约瑟夫环(以编号为k=m%n的人开始): k k+1 k+2 ... n-2, n-1, 0, 1, 2, ... k-2 并且从k开始报0。 现在我们把他们的编号做一转载 2009-07-14 08:54:00 · 2432 阅读 · 1 评论 -
计算最大公约数的算法
【原理】对于正整数a和b的最大公约数x,必然存在:a%x==0b%x==0可推出,双方差值也能整除x(a-b)%x==0因此,使用两数中较大的一个减去小的一个,得到的差值放入较大的变量,再重复上面的运算,直到其中一个为0,另一个必然就是要求的x变量存储值的典型变化如下(a和b的值大小关系为假设,实际代码中可以用判断交换两者的值,或者用指针确定大小关系):变量a原创 2010-01-22 11:02:00 · 909 阅读 · 0 评论