这就是问题所在:Problem #78
这让我发疯。我已经为此工作了几个小时,我已经能够降低找到将 n
硬币堆叠到 O(n/2)< 的方法数量的复杂性
,但即使有这些改进和从 n
开始,p(n)
接近一百万,我仍然无法在一分钟内得出答案。实际上,一点也不。
有什么提示可以帮助我解决这个问题吗?
请记住,我不想要完整的解决方案,也不应在此处发布任何功能性解决方案,以免破坏其他人的问题。这就是为什么我也没有包含任何代码。
最佳答案
Wikipedia可以在这里帮助你。我假设您已经拥有的解决方案是递归,例如“中间函数”部分中的那个。这可用于找到欧拉问题的解,但速度不快。
更好的方法是使用基于 pentagonal number theorem 的递归在下一节中。这个定理的证明不是直截了当的,所以我认为问题的作者不希望你自己想出这个定理。相反,这是他们期望进行一些文献搜索的问题之一。
关于algorithm - 欧拉计划问题 #78 的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1765379/