走同样的路,发现不同的人生
これは、配列内の乱数を取得し、その位置を変更するアルゴリズムです。乱数が配列から取得されるたびに、乱数は配列の末尾の値に置き換えられます。取得された値は配列の末尾に移動され、新しいランダム値は 0 から n-1 まで、つまり先頭から転置されていない最後の位置までとなるため、重複する値は存在しません。例: numbers = [0,1,2,3,4,5]、r=2 の場合、数値 2 であるランダムな値numbers[2]を取り出します。および次に、転置し、numbers[r] =numbers[n - 1]、2 を配列の最後の桁に置き換え、配列は次のようになります: [0,1,5,3,4,2],5 が前に入れ替えられ、これが n-- 以降、再度ランダムな値を取得する場合、[0,1,5,3,4,2] (太字部分) から取得され、したがって、新しいランダム値には、取り出された 2 は絶対に含まれません。 同様に、値が再度取得されると、この値は最後から 2 番目の位置に配置されます。
これは、配列内の乱数を取得し、その位置を変更するアルゴリズムです。乱数が配列から取得されるたびに、乱数は配列の末尾の値に置き換えられます。取得された値は配列の末尾に移動され、新しいランダム値は 0 から n-1 まで、つまり先頭から転置されていない最後の位置までとなるため、重複する値は存在しません。例:
numbers = [0,1,2,3,4,5]、
r=2 の場合、数値 2 であるランダムな値numbers[2]を取り出します。
および次に、転置し、numbers[r] =numbers[n - 1]、2 を配列の最後の桁に置き換え、配列は次のようになります:
[0,1,5,3,4,2],
5 が前に入れ替えられ、これが n-- 以降、再度ランダムな値を取得する場合、[
0,1,5,3,4,2] (太字部分) から取得され、したがって、新しいランダム値には、取り出された 2 は絶対に含まれません。 同様に、値が再度取得されると、この値は最後から 2 番目の位置に配置されます。