算法
文章平均质量分 73
TWgFWHuD
这个作者很懒,什么都没留下…
展开
-
非原创:最大公约数问题
声明:算法思想来源于《编程之美》,在此仅作整理分享之用。 最大公约数问题在初等数学中是一个基础问题,当时我们用的方法是短除法。后来接触编程,常用的方法是转转相除法,此法由公元前大数学家欧几里得在《几何原本》给出解释。如果一个数能同时整除X和Y,则必能同时整除X%Y和Y,反之亦然,推出:X和Y的最大公约数与X%Y的最大公约数相等。 解法一:F(X,Y) = F(Y,X%Y) publi转载 2015-08-28 10:09:04 · 361 阅读 · 0 评论 -
约瑟夫环问题
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后结果+1即为原问题的解。 先给出一个通式:Y(1) = 0; Y(n) = (Y(n-1)+m)%n;原创 2015-08-31 14:41:26 · 749 阅读 · 0 评论 -
JAVA两个大数相乘
大数处理是科研过程中常见的问题,尤其在天文学,气象学等。在面试中,大数处理,尤其是两个大数相乘更是常客。在Java语言中,长整型long占8个字节,能表示的最大值为2^64 = 9223372036854775807(Long.MAX_VALUE),而这只有19位,分配到每个数至多8位(两个数位数一样),远远不能满足要求。所以,大数相乘要换个思路,从乘法的原理入手,下面说说我的思路。 1,预处理原创 2016-03-26 15:51:14 · 3132 阅读 · 0 评论