1. 난수 : 수를 나열하는 데에 규칙성이 없고 각각의 수가 등장하는 횟수가 거의 같은 모습의 수

>>> import random #random모듈을 불러오기
>>> rand = [] #난수를 넣을 리스트 생성
>>> for i in range(10): #난수 10개를 만들 것 
...   rand.append(random.randint(0,100)) #0~100의범위에서 난수를 생성
...
>>> rand #난수는?
[35, 0, 9, 24, 3, 51, 43, 10, 36, 44]

 

 

 

2. 난수를 사용할 때 주의할 점

  - Rn+1 = (a x Rn + b)mod c

  - Rn : 난수, Rn+1 : Rn보다 한 수 뒤에 난수

  - a, b, c : 양수 / c>a, c>b를 만족하는 정수

  - mod : 나눗셈의 나머지를 구하는 연산자

  - c로 나눈 나머지를 이용해 난수를 만들기 때문에 이 식으로 생성되는 난수는 0 ~ c-1의 범위에 있게 됨 

 

  - 시험삼아 a=4, b=7, c=9로 지정하고 난수의 초깃값을 1로 설정하여 계산했을 때 

>>> a = 4
>>> b = 7
>>> c = 9
>>> rn = 1 #난수의 초깃값 1로 설정 
>>> rand = [] #난수 넣을 리스트 생성
>>> for i in range(20): #20개 선택
...  rn = ((a * rn + b) % c) #난수를 생성한다
...  rand.append(rn) 
...
>>> rand
[2, 6, 4, 5, 0, 7, 8, 3, 1, 2, 6, 4, 5, 0, 7, 8, 3, 1, 2, 6]

  - 계산식이 생성하는 난수는 어떠한 규칙이 존재함 

+ Recent posts