2

ロックのある場所から別の場所までの距離、つまり目盛りを見つけなければならないという問題があります。たとえば、0〜39の数字の組み合わせロックを想定して、38から10に移動し、38から10に取得するのに必要なティック数である12を取得します。これは(38 + x)mod 40 = 10。ただし、モジュラス演算のためにxを分離する方法はありません。簡単な数式を作成して、38から10の間に12ティックがあることを見つける方法を誰かが考えられますか?条件分岐を使用してそれを行う方法を知っていますが、可能であれば数式を使用したいと思います。

4

1 に答える 1

2

2つのケースがあります。

  1. 「範囲内」の距離
  2. 距離の「オーバーフロー」

両方を計算し、最小値を選択する必要があります。

min((to-from) mod 40, (from-to) mod 40)

更新:以前のバージョンは、すべての場合(たとえば、1から25)で機能するわけではありませんでした。現在のバージョンは常に最も安いティック数を返しますが、方向はありません(符号なし)。

于 2012-04-13T00:13:49.193 に答える