1. 假设现在的计算机比 Appel 做实验时所用的计算机快 1 000 倍。如果使用相同的总计算时间(大约一天),对于 O(n^2) 算法和 O(nlogn) 算法,问题的规模 n 分别增加到多少?
希望自己的系统可靠吗?在设计初期就应该建立可靠性,否则以后很难加上。在设计数据结构时,应该使其能够在部分受损时恢复信息。通过仔细的察看和简单的运行来检查代码,并进行广泛的测试。在可靠的操作系统上、在使用错误校正内存的冗余硬件系统中运行您的软件。制订一个计划,以便在系统崩溃(一定会崩溃)时能够快速恢复。仔细记录每次崩溃以便学习。
“在提高效率之前先确保正确性”通常是一个好建议。不过,Bill Wulf 只花了几分钟就让我觉得这一古训并没有我以前想象得那么正确。他举了一个文档生成系统的例子,该系统需要几个小时才能生成一本书。Wulf 的评论如下:“这个程序跟其他任何大型系统一样,今天有 10 个已知的小错误,下个月又将出现 10 个新的错误。如果让你在纠正当前的 10 个错误和使程序提速 10 倍之间选择,你会选择哪一个?”
可以通过驾驶培训、严格限速、限制饮酒的最小年龄、严惩酒后驾车、建立良好的公共交通运输系统等措施来避免交通事故。一旦发生了交通事故,可以通过乘客舱的设计以及安全带(可能跟法律的规定一样)和安全气囊的使用来降低乘客的受伤程度。一旦有人受伤了,可以借助现场护理、救护直升机、外伤中心和矫正手术来降低伤害造成的后果。