2017-11-11 25 views
-2

v4 ip 주소를 나타내는 임의의 숫자 배열을 생성해야하며 배열의 각 난수는 고유해야합니다.많은 양의 난수를 생성 할 때 고유성을 보장하는 가장 효율적인 방법

이 문제를 해결하는 가장 효율적인 방법 (데이터 구조 및 알고리즘)은 무엇입니까?

0에서 255^4까지 255^4 요소의 배열을 생성하려고합니다. Fischer 및 Yattes 알고리즘과 같은 셔플 알고리즘을 사용하여이 수를 계산합니다. 그래서 n 요소의 배열을 생성해야 할 때 위의 배열에서 첫 번째 n 요소를 선택하기 만하면됩니다.

가장 효율적인 방법입니까?

+1

가능한 [고유 정수 세트를 무작위로 선택하는 가장 효율적인 방법] 가능한 복제본 (https://stackoverflow.com/questions/3722430/most-efficient-way-of-randomly-choosing-a-set-of- 별개의 정수) 및 https://stackoverflow.com/questions/196017/unique-non-repeating-random-numbers-in-o1 – Oleg

답변

1

IP v4 숫자는 32 비트 정수를 나타내는 또 다른 방법입니다. 10 진수로 각 바이트를 inbetween 사이의 점으로 인쇄하십시오.

따라서 임의의 32 비트 숫자를 선택하고 시스템에서 브로드 캐스트 주소를 나타내는 사람들을 버립니다. 필요한만큼 반복하십시오.