본문 바로가기

Programming/Python

[Python] 난수 생성 시 가중치 (weights) 적용하기

728x90
반응형

python에서는 random 내장 라이브러리를 사용해서 난수를 쉽게 생성할 수 있습니다.

 

>>> import random
>>> random.choice(range(1, 6))
4

 

그런데 만약에! 뽑히는 숫자에 확률을 더해주고 싶다면?

즉, 랜덤이긴 하지만 특정 숫자가 자주 뽑히도록 확률을 조정하고 싶다면?

바로 weights을 추가해주면 됩니다!

 

>>> random.choices(range(1, 6), weights = [0.2, 0.3, 0.1, 0.1, 0.3])
[2]

 

weights 변수에 넣어주면 뽑히는 대상이 뽑힐 확률을 적용해줄 수가 있습니다!

만약 한 숫자에 가중치를 몰아주게 되면 랜덤이지만 계속 같은 숫자가 나오는 것을 확인 할 수 있습니다!

 

>>> random.choices(range(1, 6), weights = [0, 0, 0, 0, 1])
[5]
>>> random.choices(range(1, 6), weights = [0, 0, 0, 0, 1])
[5]
>>> random.choices(range(1, 6), weights = [0, 0, 0, 0, 1])
[5]
>>> random.choices(range(1, 6), weights = [0, 0, 0, 0, 1])
[5]
728x90
반응형