난수 생성할 때 확률 적용하는 방법을 알고 싶습니다.
조회수 8041회
안녕하세요.
현재 아래와 같은 순서로 진행되는 프로그램을 만들려고 합니다.
- 1~5 의 숫자가 있다.
- 난수 생성시 모두 동일한 확률을 가진다 (1/5, 1/5, 1/5, 1/5, 1/5)
- (확률 적용하여) 난수 생성
- 2가 나왔다고 가정
- 나온 숫자의 확률 증가 (1/6, 2/6, 1/6, 1/6, 1/6)
- 다시 확률 적용하여 난수 생성
- 반복
진행하려고 하는데 난수를 적용한 확률을 어떻게 해야될지 모르겠습니다.
단순 난수 생성은 알고 있지만, 확률을 어떻게 적용하는지 알려주시면 감사하겠습니다.
현재 python을 통해서 하고자 합니다.
감사합니다.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
2 답변
-
python 3.6 부터
random.choices
함수에weights
를 줘서 뽑을 수 있네요.random.choices(range(1, 6), weights=[1,1,1,1,1]) # 모두 동일한 확률로 choice random.choices(range(1, 6), weights=[1,2,1,1,1]) # 2를 뽑을 확률이 다른 것보다 두배
https://docs.python.org/3/library/random.html#random.choices
-
import time import random candidate = ['A', 'B', 'C', 'D', 'E'] while (True): selected_index = random.randrange(len(candidate)) print(candidate[selected_index]) candidate.append(candidate[selected_index]) time.sleep(1)
댓글 입력