数据结构递推关系
Data Structures recurrence relation
我需要帮助和你的提示来回答这类问题,因为我迷路了......
这是问题:
有n封信,每封信都有自己的邮箱。
f(n) = 将每封信放入错误邮箱的方法数。
我需要找到一个递归算法。
到目前为止,这是我的想法:
f(n = 1) = 0
f(n = 2) = 1
对于第 n 封信,您有 (n-1) 个选项可以将这封信放入错误的邮箱中。
所以也许它应该是这样的:
n-1 * (f(n-1))
不知道自己思考的方向对不对,应该多想还是少想。
另外,如果您有可以帮助我的资源,我将非常高兴。
这是选项:
(第四个选项是 none 的答案是正确的)
click here to see the answers
考虑 n=4
案例。一开始我们有四个盒子。我们需要从 n-1
个选项中选择字母 1 的方框。为了便于解释,假设我们选择了框 2。
1 2 3 4
/
1 2 3 4
现在有两种可能。
信件 2 被邮寄到第一个盒子里。然后,我们剩下的盒子和信件都是 3 和 4。所以,有f(2)
种方法。
字母2被寄到一个不是1的盒子里。那么,我们要寻找一种排列字母1、3、4和盒子2、3、4的方法,有一个条件字母 1 和 2 没有配对。这与用同一组数字排列三个字母和方框的情况相同。所以有f(3)
种方式
概括此逻辑,f(n) = (n-1) * (f(n-2) + f(n-1))
。
我需要帮助和你的提示来回答这类问题,因为我迷路了...... 这是问题: 有n封信,每封信都有自己的邮箱。 f(n) = 将每封信放入错误邮箱的方法数。 我需要找到一个递归算法。
到目前为止,这是我的想法: f(n = 1) = 0 f(n = 2) = 1 对于第 n 封信,您有 (n-1) 个选项可以将这封信放入错误的邮箱中。 所以也许它应该是这样的: n-1 * (f(n-1))
不知道自己思考的方向对不对,应该多想还是少想。 另外,如果您有可以帮助我的资源,我将非常高兴。 这是选项: (第四个选项是 none 的答案是正确的) click here to see the answers
考虑 n=4
案例。一开始我们有四个盒子。我们需要从 n-1
个选项中选择字母 1 的方框。为了便于解释,假设我们选择了框 2。
1 2 3 4
/
1 2 3 4
现在有两种可能。
信件 2 被邮寄到第一个盒子里。然后,我们剩下的盒子和信件都是 3 和 4。所以,有
f(2)
种方法。字母2被寄到一个不是1的盒子里。那么,我们要寻找一种排列字母1、3、4和盒子2、3、4的方法,有一个条件字母 1 和 2 没有配对。这与用同一组数字排列三个字母和方框的情况相同。所以有
f(3)
种方式
概括此逻辑,f(n) = (n-1) * (f(n-2) + f(n-1))
。