>  기사  >  웹 프론트엔드  >  javascript_javascript 기술에서 반복되지 않는 난수를 얻는 방법 비교

javascript_javascript 기술에서 반복되지 않는 난수를 얻는 방법 비교

WBOY
WBOY원래의
2016-05-16 19:01:11987검색

비반복 난수 구성표 1: 1531밀리초
일반적인 아이디어는 먼저 1~3000의 배열을 만들고 한 번에 하나씩 꺼낸 다음 배열을 하나씩 줄이는 것입니다. , 하나를 취하고, 결코 반복되지 않도록 하나를 줄이십시오.


[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
중복 없음 난수 방식 2: 297밀리초

하지만 방식 1은 슬라이스 방식을 사용하므로 이 방식은 배열을 재생성하므로 메모리와 CPU 작업이 많이 소모되므로 효율성이 매우 낮습니다. 이를 개선하고 원래 배열에서 숫자를 가져옵니다. 그런 다음 원래 배열의 이 위치에 null 값을 할당합니다. 이러한 방식으로 다음에 숫자를 검색할 때 해당 숫자가 null로 확인되면 null이 아닐 때까지 검색되지 않습니다. 테스트 후에는 효율성이 크게 향상될 수 있습니다.

[Ctrl A 모두 선택 참고:
외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다.
]
중복 없음 난수 방식 3: 234밀리초

또 다른 생각으로, 원래 배열 원점을 쪼개서 차례로 인쇄하면
이렇게 하면 무작위성은 결코 반복될 수 없습니다. , 더 효율적입니다.
프로그램 2를 계속 실행할수록 원래 배열이 null이 되는 빈도가 높아지고 작업 수가 많아지기 때문입니다.
[Ctrl A 모두 선택 참고: 외부 J를 도입해야 하는 경우 실행하려면 새로 고쳐야 합니다. ]
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.