4.1.12 习题
1. 请为threesum.py实现一个函数writeAllTriples(),输出三个数的和为0的所有三元组。
2. 请修改threesum.py,程序从命令行接收一个参数x,查找标准输入中最接近x的三元组。
3. 请编写一个程序foursum.py,从标准输入读取一个整数n,然后从标准输入读取n个整数,统计和为0的不同4元组的个数。使用四重嵌套循环。请问程序运行时间的增长量级是多少?请估计程序在一个小时内可以处理的最大的n为多少?然后,运行你的程序以验证假设。
4. 请证明:1+2+…+n=n(n+1)/2。
解答:我们在2.3节一开始即通过归纳法给出过证明。这里是另一种证明方法的基础:
5. 请通过归纳法证明0和n-1之间所有不同的整数三元组数量为n(n-1)(n-2)/6。
解答:对于n=2,公式成立。对于n>2,通过归纳假设证明不包含n的三元组数量为(n-1)(n-2)(n-3)/6,包含n-1的三元组数量为(n-1)(n-2)/2,总计结果为:
(n-1)(n-2)(n-3)/6+(n-1)(n-2)/2=n(n-1)(n-2)/6
6. 请使用积分近似证明0和n-1之间不同整数三元组的数量为n3/6。
解答:。
7. 请问运行如下代码片段后,x(作为 ...
Get 程序设计导论:Python语言实践 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.