これに対する解決策は非常に単純だと思いますが、しばらく考えていて、エレガントな解決策を思いつくことができませんでした。
私は数字の範囲を持っています。たとえば1..10 = (1,2,3,4,5,6,7,8,9,10)
、これは円形です。つまり、最後の数字の後の数字が最初の数字 ( next(10)=1
) になります。
範囲内の特定の数値について、次の数値と前の数値i>0
を計算したいと思います。例えば。m
m
next(5,1)=6
next(10,1)=1
next(10,2)=2
prev(5,2)=3
prev(1,1)=10
prev(1,2)=9
範囲の長さはどこにあるのnext
かを知ることができます(例では)。しかし、私はエレガントな解決策を見つけることができませんでした。(i+m)%n
n
n=10
prev