반복 없는 난수

문제의 공식화

주어진 값 범위에서 반복 없이 정수 난수 세트를 생성해야 한다고 가정해 봅시다. 이동 중 예시:

  • 제품 또는 사용자에 대한 고유한 임의 코드 생성
  • 사람을 작업에 할당(목록에서 무작위로 각 사람)
  • 검색어의 단어 순열(hello seo-shnikam)
  • 로또 등

방법 1. 단순

우선 간단한 옵션을 고려해 보겠습니다. 10에서 1까지의 정수 10개를 무작위로 가져와야 합니다. Excel에 내장된 함수 사용 케이스 사이 (가장자리 사이) 고유성은 보장되지 않습니다. 시트 셀에 입력하고 10셀 아래로 복사하면 반복이 쉽게 발생할 수 있습니다.

반복 없는 난수

그러므로 우리는 다른 길로 갈 것입니다.

모든 버전의 Excel에는 기능이 있습니다. 계급 (범위), 순위를 매기거나, 즉 집합에서 숫자의 최상위 위치를 결정하기 위한 것입니다. 목록에서 가장 큰 숫자는 rank=1이고 맨 위에 있는 두 번째 숫자는 rank=2입니다.

A2 셀에 함수를 입력합시다. 슬치스 (랜드) 인수 없이 수식을 10셀 아래로 복사합니다. 이 함수는 10에서 0 사이의 난수 1개 집합을 생성합니다.

반복 없는 난수

다음 칼럼에서 우리는 기능을 소개합니다 계급수신된 각 난수에 대한 순위의 위치를 ​​결정하려면:

반복 없는 난수

1에서 10까지의 반복되지 않는 임의의 정수 중에서 원하는 수를 원하는 만큼 B열에 입력합니다.

순전히 이론적으로 다음과 같은 상황이 발생할 수 있습니다. 슬치스 A 열에 두 개의 동일한 난수를 제공하면 순위가 일치하고 B 열에서 반복됩니다. 그러나 정확도가 소수점 이하 15자리라는 사실을 감안할 때 그러한 시나리오의 확률은 극히 적습니다.

방법 2. 복잡

이 방법은 약간 더 복잡하지만 하나의 배열 수식만 사용합니다. 시트에 9에서 1 사이의 범위에서 50개의 반복되지 않는 임의의 정수 목록을 만들어야 한다고 가정해 보겠습니다.

A2 셀에 다음 수식을 입력하고 끝 부분을 클릭하십시오. Ctrl + Shift + Enter (배열 수식으로 입력하려면!) 수식을 원하는 셀 수로 복사합니다.

반복 없는 난수

방법 3. 매크로

물론 Visual Basic에서 프로그래밍을 사용하여 문제를 해결할 수 있습니다. 임의 샘플링에 대한 이전 기사 중 하나에서 이미 Lotto 배열 매크로 함수를 인용했습니다. 이 함수는 주어진 간격에서 필요한 수의 반복되지 않는 임의의 숫자를 생성합니다.

  • 범위의 고유 값 수를 계산하는 방법
  • 목록에서 임의의 요소 선택

댓글을 남겨주세요.