더북(TheBook)

1.2.24 가우스 난수. 다음의 박스-뮬러(Box-Muller) 공식을 이용하면 정규 분포에 따르는 난수를 생성할 수 있다.

w = sin(2𝜋v)(-2 ln u)1/2

이때 uvmath.random() 함수로 생성한 0과 1 사이의 실수이다. 표준 가우스 난수를 출력하는 프로그램을 작성하라.

 

1.2.25 정렬 확인. 명령 줄 인수로 세 개의 실수 x, y, z를 입력받아 이 숫자들이 오름차순(x < y < z)이나 내림차순(x > y > z)으로 정렬되어 있으면 True, 아니면 False를 출력하는 프로그램을 작성하라.

 

1.2.26 요일. 날짜를 입력받아 그날의 요일을 출력하는 프로그램을 작성하라. 프로그램은 명령 줄 인수로 m(달), d(날), y(년도)를 입력받고 0에서 6사이의 숫자(0은 일요일, 1은 월요일, ...)를 출력해야 한다. 그레고리력에서는 다음의 공식을 사용할 수 있다.

y0 = y - (14 - m) / 12

x = y0 + y0/4 - y0/100 + y0/400

m0 = m + 12 × ((14 - m) / 12) - 2

d0 = (d + x + (31×m0)/12) % 7

예를 들어 2000년 2월 14일의 경우

y0 = 2000 - 1 = 1999

x = 1999 + 1999/4 - 1999/100 + 1999/400 = 2483

m0 = 2 + 12×1 - 2 = 12

d0 = (14 + 2483 + (31×12)/12) % 7 = 2500 % 7 = 1

이 되어 월요일임을 알 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.