더북(TheBook)

1.3.28 유클리드 알고리즘(Euclid’s algorithm)을 이용해 두 정수의 최대공약수(greatest common divisor, GCD)를 구하는 gcd.py 프로그램을 작성하라. 유클리드 알고리즘은 반복적으로 수행하는 방법으로서, x > y일때 yx를 나눌 수 있으면 xy의 최대공약수는 y, 나눌 수 없는 경우에는 xy의 GCD는 x%yy의 GCD와 같다는 성질을 이용한다.

 

1.3.29 명령 줄 인수로 정수 n 하나를 입력받고 n x n 표를 출력하는 프로그램 relativeprime.py를 작성하라. ijGCD1(즉 ij가 서로소)인 경우 이 표의 항목(i, j)에 별표를, 그렇지 않으면 공백을 넣으면 된다.

 

1.3.30 break 문을 사용하지 않고 단위 원판 위에 무작위로 분산된 점을 생성하는 프로그램을 작성하라. 여러분이 작성한 코드와 이번 절에서 설명한 코드를 비교하라.

 

1.3.31 구표면에 위치한 무작위 점(a, b, c)의 좌표를 출력하는 프로그램을 작성하라. 마사글리아 방법(Marsaglia’s method)을 이용하면 구표면 위의 점을 쉽게 생성할 수 있다. 마사글리아 방법은 먼저 이번 절 뒤에서 설명한 단위 원판 위의 무작위 점(x, y)을 선택하고 나서, a, b, c로 설정한다.

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