累積和の変数名の候補

累積和を書くときに変数名を何にするかで迷いがち

候補1「r」

ruisekiの頭文字です

良い点

  • 一文字で書きやすい

悪い点

  • 基本的に英語から取っている変数名の中でこれだけローマ字なのが納得いかない
  • rightのrと被る

候補2「rui」

ruisekiの頭3文字です

良い点

  • 累積なのだとわかりやすい

悪い点

  • 基本的に英語から取っている変数名の中でこれだけローマ字なのが納得いかない

候補3「accum」

accumulateから来ています

良い点

  • 英語なので、ローマ字よりも他の変数名とのまとまりがよい
  • c++のstd::accumulateに近いので覚えやすい
  • https://codic.jp/engineで累積と打つとaccumulationと出てくる

悪い点

  • 少し長い
  • 一発で累積だと直観的でない

候補4「cum」

cumulativeから来ています

良い点

  • sumに近くて累積和を書くなら分かりやすい
  • 強い人の累積和のライブラリでcumulativeが使われていた
  • https://codic.jp/engineで累積和と打つとcumulative_sumと出てくる

悪い点

  • 他人が見て累積和を書いていると伝わるかと言われれば微妙

候補5「sum」

sumから来ています

良い点

  • 和であることが伝わりやすい
  • 多くの人にとって直観的である

悪い点

  • 別のプログラムでは別の意味で使われていることが多い変数名なため「累積和=sum」としてのイメージを保っていられない

結論

好きなものをつけよう!

  • accumulate_sum
  • cumulative_sum

あたりが無難な気がする。 競技プログラミングなどでは

  • acm(accumulate)
  • cum(cumulative)
  • sum(sum)

がよいのかな