提问人:Naitik Mundra 提问时间:7/15/2022 最后编辑:Naitik Mundra 更新时间:7/15/2022 访问量:474
Haskell Wiki 中 Project Euler 问题 27 的这个解决方案是如何工作的?
How does this solution of Project Euler Problem 27 in the Haskell Wiki work?
问:
我一直在解决一些随机的欧拉计划问题来练习我的 haskell。解决问题后,我通常会在 haskell wiki 上查找解决方案。
对于问题 27,我以常规方式解决它,即使用 和 s 的组合。但后来,我在 wiki 上看到了这个解决方案。我不知道这个解决方案是如何工作的。我发现的唯一其他提及来自math stackexchange上的这个封闭线程。isPrime
map
problem_27 :: Integer
problem_27 = -(2 * a - 1) * (a ^ 2 - a + 41)
where
n = 1000
m = head $ filter (\x -> x ^ 2 - x + 41 > n) [1 ..]
a = m - 1
我试图理解这段代码
据我了解,此代码执行以下操作
- 设 n=1000
- 设 m 为第一个自然数 x,使得 x^2 - x + 41 大于 n(这里是 1000)
- 则 a = m - 1
- 问题的答案是 -(2a-1) * (a^2-a+41):(我认为这意味着两者是系数。
但我不明白为什么这个程序给出了正确的答案。或者换句话说,这个算法背后的原因是什么?
答: 暂无答案
下一个:提高超越方程求解的精度
评论
n^2 + n + 41
n
-40
39
x
(n - x)^2 + (n - x) + 41
n
x - 40
x + 39
x = 5
-35
44
0
x
a
b