【发布时间】:2008-12-06 20:13:00
【问题描述】:
我正在尝试进行 Euler 编号 219 项目,但未能掌握它。我正在尝试使用 Python,根据 Euler 项目,它应该能够在一分钟内完成!这让我认为他们不可能希望我计算每个单独的位串,因为这在 Python 中太慢了 - 必须有一个 sub O(n) 算法。
我查看了一个递归解决方案,它存储位串可能的前缀,以便它可以快速选择一个新位串,甚至将它们分组考虑。这仅适用于超过 10 的暴力破解值:
cost(1) = 1
cost(2) = 5
cost(3) = 11
cost(4) = 18
cost(5) = 26
cost(6) = 35
cost(7) = 44
cost(8) = 54
cost(9) = 64
cost(10)= 74
cost(11)= 85
cost(12)= 96
过去,我正在努力理解如何减少问题。总是有可能做出这样的模式:
1
01
001
0001
00001
00000
但对于超过 7 个位串来说,它并不是最优的。谁能指导我应该考虑什么?
【问题讨论】:
-
我投票决定将此问题作为题外话结束,因为 Project Euler 明确要求人们不要在网上发布他们问题的答案。 StackOverflow 通过发布他们所有问题的答案来破坏他们的网站是一种糟糕的形式。