読者です 読者をやめる 読者になる 読者になる

重なりなしの二つずつ

数列から数字を二つずつ取り出して処理する方法を前回書きました。前回のは移動しながら取っていくもので、いわゆる移動平均などに使えるものです。
いっぽう、重なりなしでいくつかずつ処理したい場合はどうするか。
左側引数をマイナスにすると、重なりなしの結果になります。

   a=:i.15   NB.Use this as an example array.
   # a
15
   a
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
   _2 (+/\) a
1 5 9 13 17 21 25 14
   # _2 (+/\) a
8
   8 2$ a
 0  1
 2  3
 4  5
 6  7
 8  9
10 11
12 13
14  0
   +/"1 (8 2$ a)
1 5 9 13 17 21 25 14

上記でやったように、重なりなしの場合はマトリックスにして処理をすることにより、同じ結果が得られます。この方が頭が楽かもしれません。


以上