随笔分类 -  Algorithm

摘要:在本人上一篇拙作中,介绍了吸血鬼数的概念并实现了一种算法,但正如末尾所说,在计算从0到Integer.MAX_VALUE之间的吸血鬼数时,其计算时间达到了12分钟之长。因此,该算法有待优化。先说一下该算法的基本思想:比方说要求四位数、即求1000~9999之间的吸血鬼数,那么两个乘数的位数为2,则乘数的范围即可定为[10, 99],于是,对两个乘数进行从10到99的双层循环,计算其积,在满足相关限制条件的情况下,将积所包含的数字和乘数所包含的数字进行比较,如果数字完全相同,那么该积即为吸血鬼数。对于其它偶数位的整数,可按上述方法类推。在修改之前的算法基本流程如下:1. 获得要求的整数区间[m, 阅读全文
posted @ 2011-11-27 20:07 ini_always 阅读(2004) 评论(0) 推荐(0)
摘要:========================================此为传送门:关于本篇吸血鬼算法的介绍及相应优化========================================昨天晚上在看Thinking in Java时,作者在第四章第八节的练习10里面提到了一种有趣的数字:吸血鬼数。以下是来自wikipedia的定义:從合成數v開始,該合成數需有偶數n個位,然後用v的各個數字組成兩個n/2個位的正整數x和y(x和y不能同時以0為個位數).若x和y的積,剛好就是v,那麼v就是吸血鬼數(vampire number),而x和y則稱為尖牙。例如1260是吸血鬼數,2 阅读全文
posted @ 2011-11-24 19:45 ini_always 阅读(1376) 评论(1) 推荐(1)