1、函数 f(n) = ⎧⎪⎪⎨⎪⎪⎩ 1 if n = 0, f(n −1) × n if n > 0 计算的是什么?
该函数计算的是 n 的阶乘,即 n!
2、考虑由以下递归定义定义的序列:sn = sn−1 + 3。分别在以下两种情况下计算该序列的前四项:(a) s0 = 0;(b) s0 = 4。并给出两种情况下sn的非递归定义。
情况(a):前四项为 $ s_0 = 0 $,$ s_1 = 3 $,$ s_2 = 6 $,$ s_3 = 9 $;非递归定义为 $ s_n = 3n $。
情况(b):前四项为 $ s_0 = 4 $,$ s_1 = 7 $,$ s_2 = 10 $,$ s_3 = 13 $;非递归定义为 $ s_n = 3n + 4 $。
3、用数学归纳法证明以下与几何级数相关的恒等式,其中n是正整数,x≠1是某个实数:∑(i = 0到n - 1) x^i = (x^n - 1) / (x - 1)。
-
基础步骤 :当n = 1时,等式左边为∑(i = 0到0) x^i = x^0 = 1,等式右边为(x^1 - 1) / (x - 1) = 1,左边等于右边,基础步骤成立。
-
归纳步骤 :假设当n = k(k为正整数)时等式成立,即∑(i = 0到k - 1) x^i = (x^k - 1) / (x - 1)。
当n = k + 1时,∑(i = 0到k) x^i = ∑(i = 0到k - 1) x^i + x^k。
根据归纳假设,∑(i = 0到k - 1) x^i = (x^k - 1) / (x - 1),所以
∑(i = 0到k) x^i = (x^k - 1) / (x - 1) + x^k
= (x^k - 1 + x^k(x - 1)) / (x - 1)
= (x^k - 1 + x^(k + 1) - x^k) / (x - 1)
= (x^(k + 1) - 1) / (x - 1)。
即当n = k + 1时等式也成立。
由数学归纳法可知,对于任意正整数n,∑(i = 0到n - 1) x^i = (x^n - 1) / (x - 1)成立。
4、设n为某个正整数。考虑确定n的二进制表示中设置为1的位数的问题(即n以2为基数表示)。例如,对于n = 25₁₀ = 11001₂(下标表示数字的基数),结果是有三位设置为1。请指出问题的规模,并给出该规模的数学表达式。
问题的规模是n的二进制表示中的位数,数学表达式为⌊log₂n⌋ + 1(n > 0)。
5、考虑将非负整数 n 的各位数字按“正常”顺序垂直打印到控制台的问题,即最高位数字必须显示在第一行,次高位数字显示在第二行,依此类推。例如,如果 n = 2743,程序必须在控制台打印以下几行:2
7
4
3。指出问题的规模及其基本情况。为一般的非负输入整数 n = dₘ₋₁ ⋯d₁d₀ 说明问题的分解,以及如何根据子问题的结果恢复原问题的解。最后,推导递归情况并编写该方法的代码。
问题规模
问题的规模是整数 n 的位数。
基本情况
当 n 只有一位数(即 n < 10)时,算法只需直接打印 n。
分解说明
对于一般的非负整数 n = dₘ₋₁ ⋯d₁d₀,可将问题分解为打印最高位数字 dₘ₋₁ 和处理剩余数字 dₘ₋₂ ⋯d₁d₀ 两部分。
恢复解
先打印最高位数字,再递归处理剩余数字,将它们的输出组合起来就是原问题的解。
递归情况
先处理 n // 10 以打印除最低位外的其他数字,然后打印 n % 10。
代码实现
def print_digits_vertically(n):
if n < 10:
print(n)
else:
print_digits_vertically(n // 10)
print(n % 10)
6、求解以下递推式,但不计算乘法常数(Ci)。因此,在本题中不需要考虑初始条件。a) T(n) = 4T(n - 1) - 5T(n - 2) + 2T(n - 3) + n - 3 + 5n² ⋅ 2ⁿ b) T(n) = T(n - 1) + 3ⁿ - 3 + n³ ⋅ 3ⁿ c) T(n) = 5T(n - 1) - 8T(n - 2) + 4T(n - 3) + 3 + n² + n2ⁿ
a) 先求齐次部分 T(n) - 4T(n - 1) + 5T(n - 2) - 2T(n - 3) = 0 的特征多项式 x³ - 4x² + 5x - 2,因式分解为 (x - 1)²(x - 2),齐次解形式为 C₁1ⁿ + C₂n1

最低0.47元/天 解锁文章
988

被折叠的 条评论
为什么被折叠?



