【发布时间】:2013-06-25 11:35:59
【问题描述】:
我正在解决一个问题,找出所有 4 位数的吸血鬼数字。
Vampire Number v=x*y 被定义为由一对“n/2”位数字相乘形成的具有“n”个偶数位数的数字(其中数字为以任意顺序取自原始数字)x 和 y 一起。如果 v 是一个吸血鬼数,那么 x&y 和被称为它的“毒牙”。
吸血鬼数字的例子有:
1. 1260=21*60
2. 1395=15*93
3. 1530=30*51
我尝试了蛮力算法来组合给定数字的不同数字并将它们相乘。但这种方法效率极低,而且占用大量时间。
有没有更有效的算法解决这个问题?
【问题讨论】:
-
你不能遍历所有 9000 个可能性吗?这还不算多?只需以
1000开头,即10 * 00,检查结果是否为吸血鬼。 -
或者,或者,只是对潜在因素的嵌套循环 - 将它们相乘并测试结果......至少对于 2 位 -> 4 位情况。现在,如果您想找到所有 128 位 -> 256 位的案例,那将是一个完全不同规模的问题......
-
@HotLicks 不管你怎么切,对于 2 位因子的情况,只有不到 100*100=10000 种可能性...
-
这太荒谬了。给出关闭的原因是针对那些询问代码问题(如语法)的人。不是关于算法的问题。仅“蛮力算法”就足以解释问题(并激发出色的答案)。绝对没有必要关闭这样一个有趣的问题和出色的答案——这只是遵循狭隘的规则,而不是试图让网站成为一个好地方。 barmar、ziyao wei、woodchips、christoffer hammarström和marko应该为自己感到羞耻。非常糟糕的行为。
标签: algorithm