Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- duplicate lines
- spring
- ^M바꾸기
- gradle
- remove
- local
- JAR
- ADB
- javaascript
- key bindings
- JavaScript
- Jenkins
- jdbc
- change file content
- pkgutil
- not to accept jdbcUrl
- install
- svn backup
- maven
- docker
- 전송포맷
- spring boot
- object
- Change port
- Java
- ubuntu
- mariadb
- install maven
- 줄복사
- driverspy
Archives
- Today
- Total
Simplify
난수 (Random) 본문
* 아래 참고 링크에 있는 내용들이 주옥같은 내용들이 많고, 정리도 잘 되어 있습니다. 이를 단순히 옮겨왔다기 보다는, 제가 나중에 찾기가 힘들 지 몰라, 제 블로그에도 남겨놓습니다. 학습을 위해서는 아래 사이트를 참고하세요~
파이썬에서 난수(random number)를 사용하기 위해서는 기본적으로 제공되는 random 모듈을 사용한다. random 모듈에서 자주 사용되는 함수는 다음과 같다.
- randint(최소, 최대) : 입력 파라미터인 최소부터 최대까지 중 임의의 정수를 리턴한다
- random() : 0 부터 1 사이의 부동소수점(float) 숫자를 리턴한다
- uniform(최소, 최대) : 입력 파라미터인 최소부터 최대까지 중 임의의 부동소수점(float) 숫자를 리턴한다
- randrange(시작,끝[,간격]) : 입력 파라미터인 시작부터 끝값까지 (지정된 간격으로 나열된) 숫자 중 임의의 정수를 리턴한다
from random import *
i = randint(1, 100) # 1부터 100 사이의 임의의 정수
print(i)
f = random() # 0부터 1 사이의 임의의 float
print(f)
f = uniform(1.0, 36.5) # 1부터 36.5 사이의 임의의 float
print(f)
i = randrange(1, 101, 2) # 1부터 100 사이의 임의의 짝수
print(i)
i = randrange(10) # 0부터 9 사이의 임의의 정수
print(i)
아래는 난수를 사용한 간단한 예제로서 난수를 생성한 후 어떤 숫자인지 맞추는 프로그램이다. 즉, 사용자가 입력한 숫자가 난수보다 큰지 작은지를 알려주고 계속 추측해서 난수값을 맞추게하는 예제이다.
from random import randint
n = randint(1, 100)
while True:
ans = input("Guess my number (Q to exit): ")
if ans.upper() == "Q":
break
ians = int(ans)
if (n == ians):
print("Correct!")
break
elif (n > ians):
print("Choose higher number")
else:
print("Choose lower number")
샘플링 (sample)
random 모듈에서 또 한가지 유용한 기능은 리스트, set, 튜플 등과 같은 컬렉션으로부터 일부를 샘플링해서 뽑아내는 기능이다. random 모듈에서 sample(컬렉션, 샘플수) 함수는 지정된 컬렉션으로부터 샘플수만큼 랜덤 추출을 하는 함수이고, 이보다 좀 더 복잡한 choices() 함수는 샘플링에 가중치를 주어 추출하는 기능을 가지고 있다. 아래 예제는 (1) 숫자 리스트로부터 3개를 랜덤하게 샘플링하고 (2) 튜플에서 2개의 문자열을 샘플링하는 예이다.
import random
# (1) 숫자리스트 샘플링
numlist = [1,2,3,4,5,6,7,8,9]
s = random.sample(numlist, 3)
print(s) # [1, 2, 8]
# (2) 튜플 샘플링
frutes = ('사과', '귤', '포도', '배')
s = random.sample(frutes, 2)
print(s) # ['배', '사과']
참고 : http://pythonstudy.xyz/python/article/509-%EB%82%9C%EC%88%98-random
Comments