1から15までの数字を想像してください
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
ここで、このリストの値 V と別の値 D を考えてみましょう。
問題は、V - D とは何かということです。
しかし、ここに問題があります。これらの値は、線形カウントではなくループであると想像してください。つまり、「1」は「15」のすぐ隣です。
1から15までの数字を想像してください
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
ここで、このリストの値 V と別の値 D を考えてみましょう。
問題は、V - D とは何かということです。
しかし、ここに問題があります。これらの値は、線形カウントではなくループであると想像してください。つまり、「1」は「15」のすぐ隣です。
ラップアラウンドができるので |V - D| を比較できます。|15 - |V - D||。これらの数値の最小のものは、V と D の間の最短距離になります。
例:
V D |V - D| |15 - |V - D|| distance
-----------------------------------------------
1 1 0 15 0
1 15 14 1 1
2 1 1 14 1
2 15 13 2 2
より大きな数を取り、より小さな数を引くことができます。
Java の例
if(num1>num2){
num1-num2;
}else if(num2>num1){
num2-num1;
}
私はjavascriptを知りませんが、非常に似ていることは知っています