Array.sort()를 사용하여 배열을 섞을 수 있습니까?
초기 회의론에도 불구하고 Array.sort() 메서드는 실제로 다음과 같을 수 있습니다. 배열 셔플링에 사용됩니다. 작동 방식은 다음과 같습니다.
셔플링에 Array.sort() 사용의 장점과 단점
장점:
단점:
결과의 무작위성 측정
셔플링 기법의 무작위성을 정량화하기 위해 실증 테스트를 수행하고 결과를 기대값과 비교할 수 있습니다. . 예를 들어, 가능한 각 순열의 확률을 계산하고 이를 균등 분포와 비교할 수 있습니다.
대체 셔플링 알고리즘(Fisher–Yates)
Array를 사용하는 동안. sort()는 편리하지만 더 최적이고 잘 알려진 셔플링 알고리즘은 Fisher-Yates입니다. shuffle:
function shuffle(array) { var tmp, current, top = array.length; if (top) while (--top) { current = Math.floor(Math.random() * (top + 1)); tmp = array[current]; array[current] = array[top]; array[top] = tmp; } return array; }
이 알고리즘은 효율적(O(n))이며 결과의 균일한 분포를 보장합니다.
위 내용은 Array.sort()는 배열을 섞을 수 있습니까? 그렇다면 얼마나 무작위입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!