フィッシャー・ヤーツのアルゴリズムを使った配列のシャッフル

Beginner

This tutorial is from open-source community. Access the source code

はじめに

この実験では、フィッシャー・ヤーツのアルゴリズムとその JavaScript における実装方法を調べます。具体的には、このアルゴリズムを使って配列をシャッフルする方法に焦点を当てます。この実験が終わるとき、フィッシャー・ヤーツのアルゴリズムがどのように機能するか、また配列内の要素の順序をランダム化するためにどのように使えるかを、より深く理解するようになります。

配列のシャッフルアルゴリズム

JavaScript で配列をシャッフルするには、フィッシャー・ヤーツのアルゴリズムを使います。このアルゴリズムは配列の要素をランダムに並び替え、新しい配列を返します。

コーディングの練習を始めるには、ターミナル/SSH を開き、nodeと入力します。

以下はフィッシャー・ヤーツのアルゴリズムのコードです。

const shuffle = ([...arr]) => {
  let m = arr.length;
  while (m) {
    const i = Math.floor(Math.random() * m--);
    [arr[m], arr[i]] = [arr[i], arr[m]];
  }
  return arr;
};

配列をシャッフルするには、配列をshuffle関数に渡すと、シャッフルされた配列が返されます。たとえば:

const foo = [1, 2, 3];
shuffle(foo); // returns [2, 3, 1], and foo is still [1, 2, 3]

まとめ

おめでとうございます!あなたは配列をシャッフルする実験を完了しました。あなたの技術を向上させるために、LabEx でさらに多くの実験を練習することができます。