본문 바로가기
파이썬

파이썬 범위 내에서 'n'개의 고유 한 난수 생성

by º기록 2020. 12. 17.
반응형

파이썬에서 범위 내에서 난수를 생성하는 방법을 알고 있습니다.

random.randint(numLow, numHigh)

그리고 저는 이것을 루프에 넣어 n 개의 숫자를 생성 할 수 있다는 것을 압니다.

for x in range (0, n):
    listOfNumbers.append(random.randint(numLow, numHigh))

그러나 해당 목록의 각 번호가 고유한지 확인해야합니다. 많은 조건문을 제외하고 n 개의 고유 난수를 생성하는 간단한 방법이 있습니까?

중요한 것은 목록의 각 숫자가 다른 숫자와 다르다는 것입니다 ..

그래서

[12, 5, 6, 1] = 좋음

그러나

[12, 5, 5, 1] ​​= 나쁘다. 숫자 5가 두 번 나오기 때문이다.

 

해결 방법

 

교체하지 않고 샘플링 만 필요한 경우 :

>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]


k len (population) 보다 큰 경우를 제어해야하는 경우 ValueError 를 포착 할 준비가되어 있어야합니다.

>>> try:
...   random.sample(range(1, 2), 3)
... except ValueError:
...   print('Sample size exceeded population size.')
... 
Sample size exceeded population size

 

참조 페이지 https://stackoverflow.com/questions/22842289

 

 

반응형

댓글