Josephus problem のコードを書いていたとき、
連続する整数をkずらすことが少し気になった。
a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
aを1ずらすと
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0]
これは
(i + 1) % 12
という操作である。
aを2ずらすと
a = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 0, 1]
これは
(i + 2) % 12
という操作である。
一般に、aをkずらすというのは
(i + k) % 12
という操作である。
b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
bを1ずらすと
b = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1]
これは
i % 12 + 1
という操作である。
という操作である。
bを2ずらすと
b = [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2]
これは
(i + 1) % 12 + 1
という操作である。
という操作である。
一般に、bをkずらすというのは
(i + k - 1) % 12 + 1
という操作である。
(i + k - 1) % 12 + 1
という操作である。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。