-3

制限付きで循環的にカウントダウンしたいと思います。

制限が 12 で、現在の反復が 10 の場合、現在の反復が 0 の場合、同様の方法で結果を 10 - 2 = 8 にしたいとします。結果は -2 ではなく 0 - 2 = 11 になります。

主にこれをアルゴリズム/公式にしたいと考えています。

ありがとう。

4

1 に答える 1

4

modolus 演算子と Znグループを使用します。

(i < 0 ? n + i : i) % n

番号はどこnにありますか - あなたの例では 12 で、iは反復番号です。

(そうでなければ、結果が正であることを確認するために何らかの自然-n <= i値を減算したい場合があります。上記の手順を繰り返し実行する場合、これは問題になりません。)k*n - ik


補足として、Zn グループの純粋な数学的概念-i == n-iですが、私が知っているほとんどのプログラミング言語はこの計算を行わず、モドルス計算の後、左オペランドの符号は同じままです。
このために、まず符号をチェックし、それが正であることを確認します。

于 2012-12-06T15:42:04.077 に答える