javascript shuffle은 보통 Fisher-Yates 알고리즘을 활용한다
JavaScript에서 배열의 원소들을 무작위로 섞으려면, 일반적으로 Fisher-Yates (또는 Knuth) 셔플 알고리즘을 사용합니다. 이 방법은 배열 내의 각 원소에 대해 임의의 다른 위치를 선택하고, 두 위치의 원소를 교환함으로써 배열을 무작위로 섞는 효율적인 방법입니다.
다음은 Fisher-Yates 셔플 알고리즘을 사용하여 JavaScript에서 배열을 섞는 방법의 예시입니다:
```javascript
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
// 0에서 i 사이의 임의의 인덱스를 선택
const j = Math.floor(Math.random() * (i + 1));
// array[i]와 array[j]를 교환
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
// 사용 예시
const myArray = [1, 2, 3, 4, 5];
shuffleArray(myArray);
console.log(myArray); // myArray는 이제 무작위로 섞여 있음
```
이 코드는 배열 `array`를 매개변수로 받아, 그 배열의 원소들을 무작위로 섞은 후 그 배열을 반환합니다. `Math.random()` 함수는 0 이상 1 미만의 부동소수점 의사난수를 반환하므로, `Math.floor(Math.random() * (i + 1))`는 0 이상 `i` 이하의 정수 중 하나를 무작위로 선택합니다. 이 선택된 인덱스를 사용하여 현재 인덱스 `i`의 원소와 교환함으로써 배열을 섞습니다.
---
느낀점: 파이썬은 다 기본제공인데 너무 귀찮다
댓글
댓글 쓰기