👋

累積和を利用して、nからmまでの和を求める

2023/01/04に公開1

累積和を利用して、nからmまでの和を求める方法を解説します。今回は、n=3、m=5です。答えは、12になります。

アルゴリズム

  1. 1から5までの配列A=[1, 2, 3, 4, 5]を作成する。
  2. b_{n} = \sum_{n=0}^{n-1}a_{n}を満たす配列B=[0, 1, 3, 6, 10, 15]を作成する。
  3. b_{5} - b_{2} = 15 - 3 = 12

ソースコード

an = 1:5
bn = [0]

for i in an
    push!(bn, bn[end] + i)
end

result = bn[6] - bn[3]
println(result) # 12

Discussion

麦茶が好き麦茶が好き

JavaScript版です。

const An = [...Array(5).keys()].map(n => ++n)
let Sn = [0];

for(let i = 0; i < An.length; i++) {
    Sn.push(Sn[i] + An[i]);
}

const result = Sn[5] - Sn[2];
console.log(result);