gpt4 book ai didi

Haskell Fibonacci 似乎很慢

转载 作者:行者123 更新时间:2023-12-04 16:25:51 27 4
gpt4 key购买 nike

我正在学习 Haskell,我写了一个简单的斐波那契函数:

fib :: Int -> Int

fib 1 = 1
fib 0 = 0
fib n = (fib (n-1)) + (fib (n-2))

它似乎可以编译,并将这个脚本加载到 GHCI REPL 中,我可以弄乱一些数字。
我试过了
fib 33

并且很惊讶它花了大约 4 秒才给出结果。 (对不起,我还不知道如何在 Haskell 中为函数计时,所以算我自己)。

Fib 33 并不是特别费力。答案是不到400万。
所以我假设我的代码写得不是很好,或者我做递归的方式可能存在一些问题(好吧,它写得不好,因为它没有考虑负整数)。问题是,为什么它很慢?
任何帮助表示赞赏。

最佳答案

由于您的函数未使用 memoization,因此评估花费的时间比您预期的要长。 .参见例如this questionthat question有关如何在 Haskell 中使用 memoization 定义斐波那契函数的答案。

关于Haskell Fibonacci 似乎很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27529587/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com