반응형
파이썬에서 범위 내에서 난수를 생성하는 방법을 알고 있습니다.
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
반응형
'파이썬' 카테고리의 다른 글
파이썬-목록에없는 경우 (0) | 2020.12.17 |
---|---|
파이썬 tkinter 캔버스를 창 너비에 맞게 동적으로 조정하는 방법은 무엇입니까? (0) | 2020.12.17 |
파이썬 numpy / scipy의 제곱 차이 합계 (SSD) (0) | 2020.12.17 |
파이썬 (python) [Errno 11001] getaddrinfo 실패 (0) | 2020.12.17 |
파이썬 문자열을 문자열 집합에 매핑하는 Python 사전? (0) | 2020.12.17 |
댓글