在Clojure中创建Tribonaci编号

在Clojure中创建Tribonaci编号,clojure,Clojure,我想知道是否有人能够帮助我创建一个函数,该函数给定一个数字,然后返回与该数字对应的Tribonaci数字,例如 10人将返回44人 15将返回927通常,您应该显示您已经尝试过的内容,然后让我们知道您遇到了什么问题,以便我们可以为您指出解决方案。要求Stack Overflow从头开始为您执行此操作是不礼貌的 但是,我喜欢Clojure,这些问题很有趣。首先,有很多方法可以做到这一点,只要在谷歌上搜索Clojure fibonacci,你就会从很多不同的方向开始 下面是一个使用reduce的快速

我想知道是否有人能够帮助我创建一个函数,该函数给定一个数字,然后返回与该数字对应的Tribonaci数字,例如 10人将返回44人
15将返回927

通常,您应该显示您已经尝试过的内容,然后让我们知道您遇到了什么问题,以便我们可以为您指出解决方案。要求Stack Overflow从头开始为您执行此操作是不礼貌的

但是,我喜欢Clojure,这些问题很有趣。首先,有很多方法可以做到这一点,只要在谷歌上搜索Clojure fibonacci,你就会从很多不同的方向开始

下面是一个使用
reduce
的快速示例:

(defn tri [x] 
   (last (reduce 
            (fn [[a b c] n] 
               (conj [b c] (+ a b c))) [0 0 1] (range (- x 3)))))
您还可以使用
迭代

(第n次(迭代(fn[[abc]][bc(+abc)])[001])5)

这将返回第一组Tribonaci编号的第5个,其中
[0 0 1]
是初始设置

要从第X个索引中获得准确的结果,还可以将其封装在如上所述的函数中,如下所示:

(defn tri-iterate [x] 
   (last 
     (nth (iterate (fn [[a b c]] [b c (+ a b c)]) [0 0 1]) (- x 3))))
你也可以用很多其他的方法来做