【问题标题】:How to make a cumulative sequence?如何制作一个累积序列?
【发布时间】:2013-02-07 15:24:21
【问题描述】:

假设我有一个如下所示的惰性序列:

(def s (iterate inc 1))
(take 10 s)
=> (1 2 3 4 5 6 7 8 9 10)

现在,我想生成一个s 的累积和序列,如下所示:

=> (1 3 6 10 15 ...)

我该怎么做? 我尝试的是使用atom 并将总和累积到它(变异)这是生成累积序列的唯一方法还是有更好的方法来做到这一点?

注意:上面的累积和只是一个例子。源序列可以是其他序列。所以我不能使用公式:s(n) = n(n+1)/2

【问题讨论】:

    标签: clojure cumulative-sum


    【解决方案1】:
    (take 10 (reductions + s))
    => (1 3 6 10 15 21 28 36 45 55)
    

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 1970-01-01
      • 2016-06-30
      • 2019-03-19
      • 2018-04-11
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 2021-03-19
      相关资源
      最近更新 更多