gpt4 book ai didi

performance - 概括斐波那契类型序列(性能)

转载 作者:行者123 更新时间:2023-12-03 23:41:50 25 4
gpt4 key购买 nike

今天我找到了 Haskell Fibonacci 定义:

fibs = 0 : 1 : zipWith (+) fibs (tail fibs)

探索,我将“tribonacci”数字写为:

tribs = 0 : 0 : 1 : zipWith (+) (zipWith (+) tribs (tail tribs)) (drop 2 tribs)

这很好用,所以我尝试使用相同的基本思想推广到任何“斐波那契类型”序列:

nbonacci n   = (take n (repeat 0)) ++ [1] ++ (z n) 
where z 1 = zipWith (+) (nbonacci n) (drop 1 (nbonacci n))
z x = zipWith (+) (z (x-1)) (drop x (nbonacci n))

这也有效:它正确地给出了我想要的序列。不幸的是,它也非常慢,甚至在生成相同的斐波那契数列和三角数列时也要慢很多倍。我怎样才能以获得更好性能的方式表达相同的想法?

最佳答案

您可以使用 worker-wrapper transform :

nbonacci n = go where
go = take n (repeat 0) ++ [1] ++ z n
z 1 = zipWith (+) go (drop 1 go)
z x = zipWith (+) (z (x-1)) (drop x go)

关于performance - 概括斐波那契类型序列(性能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23175856/

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