Fisher - Yates Shuffle algorithm (피셔 예이츠 셔플)

도네토·2022년 1월 3일
0
<script>
    const candidate = Array(45).fill().map((v, i) => {
      i + 1 //1~45까지의 순차적인 배열
    });
    const shuffle = [];
    while (candidate.length > 0) {
      const random = Math.floor(Math.random() * candidate.length); //무작위 인덱스뽑기
      const spliceArray = candidate.splice(random, 1); // candidate 배열에서 랜덤으로 하나 뽑기
      const value = spliceArray[0]; // 배열에 들어 있는 값을 추출해
      shuffle.push(value); // shuffle 배열에 넣기
    }
    console.log(shuffle);
  </script>

로또 시스템을 만든다던지, 뽑기 시스템에 적용하기 좋은 알고리즘

<참고>
https://youtu.be/pj02ViXlm44

profile
HELLO THERE

0개의 댓글