심화학습
1.6.13 행렬 제곱. p, p2, p4, p8, p16 등 변환 행렬을 계속 제곱해 페이지 랭크를 계산하는 markov.py
와 비슷한 프로그램을 작성하라. 그리고 모든 행이 어떤 값에 수렴하는지 검증하라.
1.6.14 랜덤 웹. 명령 줄에서 페이지 수 n
과 링크 수 m
을 입력받아 표준 출력 장치에 먼저 n
을 출력하고 나서 0
과 n-1
사이의 무작위 정수 쌍을 m
개 출력하는 제너레이터인 transition.py
프로그램을 작성하라(더 실감 나는 웹 모델을 만드는 방법은 4.5절을 참조하라).
1.6.15 허브와 권위 값. [연습문제 1.6.14]에서 만든 제너레이터에 일정한 수의 허브(hub)와 권위 값(authority)을 생성하는 코드를 추가하라. 허브와 권위 값은 무작위로 선정한다. 전체 페이지의 10%가 허브를 가리키는 링크를 가지고 있으며, 권위 값은 전체 페이지의 10%를 가리키는 링크를 가지고 있다. 페이지 랭크를 계산하라. 허브와 권위 값, 어느 쪽의 랭크가 더 높은가?
1.6.16 페이지 랭크. 최고 랭크 페이지가 다른 페이지들보다 자신을 가리키는 링크를 더 적게 가진 페이지와 링크를 담은 배열을 설계하라.