다른 방법으로는
1. 책에 있는 단어 목록을 가져올 때 keys를 사용한다.
2. 단어 빈도의 누적 합계를 담은 리스트를 구축한다(연습문제 10-2 참조). 이 리스트의 마지막 항목은 책에 있는 단어의 총 개수 n이어야 한다.
3. 1부터 n 사이에서 숫자를 무작위로 선택한다. 임의의 숫자를 누적 합계에 삽입할 수 있는 인덱스를 찾기 위해 이분 검색을 사용하라(연습문제 10-10 참조).
4. 인덱스를 사용해 단어 목록에서 해당 단어를 찾아라.
연습문제 13-7
이 알고리즘을 사용해 책에서 무작위 단어를 선택하는 프로그램을 작성하라.
해법: http://thinkpython2.com/code/analyze_book3.py