18-习题
1.7 习题
1.用自己设计的技术编写其他一种求解斐波那契序列元素 n 的函数。请编写单元测试以评估其正确性,以及相对于本章各版本的性能差异。
2.大家已经了解了用Python中的简单类型 int 表示位串的做法。请编写一个人机友好的 int 封装类,以使其能通用地当作位序列来使用(使其可迭代并实现 __getitem__() 方法)。请利用该 int 封装类重新实现一遍 CompressedGene 。
3.编写代码求解塔数任意的汉诺塔问题。
4.用一次性密码本方案加密并解密图像。
[1] 英国知名计算机科学家Donald Michie创造了memoization这个术语。参见 Donald Michie 的 Memo functions: a language feature with “rote-learning” properties(Edinburgh University,Department of Machine Intelligence and Perception,1967)。
[2] 本例受到Robert Sedgewick和Kevin Wayne的《算法(第4版)》(第819页)的启发。