더북(TheBook)

1.3.38 삼각함수. 테일러 급수 전개를 이용해 사인을 구하는 sine.py, 코사인을 구하는 cosine.py를 구현하라. sin x에서 테일러 급수는 , cos x에서 테일러 급수는 로 전개된다.

 

1.3.39 실험 분석. [연습문제 1.3.37]에서 구현한 3가지 ex 계산 방법(내포된 for 루프를 이용한 직접 계산 방법, 단일 while 루프로 개선한 방법, term > 0 종료 조건을 이용한 방법)의 실행 비용을 math.exp() 함수와 비교하는 실험을 해보자. 명령 줄 인수로 여러 값을 넣어보면서 10초 동안 각 연산을 몇 번 실행할 수 있는지 알아보라.

 

1.3.40 피프스의 문제. 1693년 새뮤얼 피프스(Samuel Pepys)는 아이작 뉴턴에게 주사위를 공평히 6번 굴려서 1이 한 번 이상 나올 확률과 12번 굴려서 1이 두 번 이상 나올 확률 중 어느 것이 더 높은지 물었다. 뉴턴에게 간단히 답을 해줄 수 있는 프로그램을 작성하라.

 

1.3.41 게임 시뮬레이션. 1970년대 게임쇼 레츠 메이크 어 딜(Let's Make a Deal)에서는 도전자에게 세 개의 문이 주어졌다. 문 하나의 뒤에는 큰 상이 있다. 도전자가 문을 선택한 후 진행자는 나머지 두 문 중 하나를 열어 보여준다(물론 상이 있는 문은 열지 않는다). 그러고 나서 도전자는 열지 않은 다른 문으로 바꿀 수 있는 기회를 가진다. 도전자는 선택을 바꿔야 할까? 얼핏 보면 도전자가 처음 선택한 문이나 열지 않은 문이나 상이 있을 확률은 똑같으므로 선택을 바꿀 필요가 없을 것처럼 보인다. 시뮬레이션을 이용해 이 생각이 맞는지 검사하는 montehall.py 프로그램을 작성하라. 프로그램은 명령 줄 인수 n을 입력받아 두 가지 전략(선택을 바꾸거나 바꾸지 않거나)을 이용해 게임을 n번 실행하고 각 전략의 성공률을 출력해야 한다.

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