码迷,mamicode.com
首页 > 其他好文 > 详细

递推趣题

时间:2015-04-03 00:14:18      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:

在网上看到一个关于递推求解的课件,感觉里面的问题很经典有趣,层层递进,因此在这里记录一下。

1、在一个平面上有一个圆和n条直线,这些直线中的每一条在圆内同其他直线相交,假设没有三条直线相交于一点,试问这些直线将圆分成多少区域。

2、平面上有n条折线,问这些折线最多能将平面分割成多少块?(已知1—>2,2—>7)

3、设有n条封闭曲线画在平面上,而任何两条封闭曲线恰好交于两点,且任何三条封闭曲线不相交于同一点,问这些封闭曲线能把平面分割成的区域个数。

4、在2*n的长方形方格中,用n个1*2的骨牌铺满方格,例如n = 3 时,为2*3方格,骨牌的铺设方案有三种,问对于n,铺设方案的总数是多少。

5、有一个1*n的一个长方形,用1*1、1*2、1*3的骨牌铺满方格。例如当n = 3 时为1*3的方格,此时用1*1,1*2,1*3的骨牌铺满方格,共有四种铺法。问对于n,铺设方案的总数是多少。

6、There are many students in PHT School. One day, the headmaster whose name is PigHeader wanted all students stand in a line. He prescribed that girl can not be in single. In other words, either no girl in the queue or more than one girl stands side by side. The case n=4 (n is the number of children) is like FFFF, FFFM, MFFF, FFMM, MFFM, MMFF, MMMM Here F stands for a girl and M stands for a boy. The total number of queue satisfied the headmaster’s needs is 7. Can you make a program to find the total number of queue with n children? 懒得翻译了:~

7、有排成一行的n个方格,用红、绿、蓝三原色给每个格子上色,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色。求全部的满足要求的涂法。

8、某人写了n封信,还有n个信封,如果所有的信都装错了信封,求共有多少种可能的情况?

 

————————————————————————^^我是漂亮的分割线^^————————————————————————

参考答案:

1、F(1) = 2; F(n) = F(n-1) + n 通项:F(n) = n(n+1)/2 + 1

2、F(1) = 2; F(n) = F(n-1) + 4(n-1) + 1 通项:F(n) = 2n^2 - n + 1

3、F(1) = 2; F(n) = F(n-1) + 2(n-1) 通项:F(n) = n^2 - n + 2

4、考虑最后一个格的铺法,容易得到:F(1) = 1, F(2) = 2; F(n) = F(n-1) + F(n-2), n≥3

5、仍然是考虑最后一个格的铺法,有:F(1) = 1, F(2) = 2, F(3) = 4; F(n) = F(n-1) + F(n-2) + F(n-3), n≥4

6、根据最后一个人的性别分情况讨论(设F(n)表示n个人的合法队列)。如果是男生,直接站在队列的最后,有F(n-1)种情况。如果是女生,则最后两个人必须都是女生,再分类:如果队列的前n-2个人是合法的队列,在队列后面追加两个女生,有F(n-2)种情况;另外,即使前面n-2个人不是合法的队列,再加上两个女生也可能是合法队列,且不合法的地方一定是长度为n-2的队列的尾部,即F(n-4) + 1男 + 1女,这样再跟上两个女生才能成为合法队列,这种情况有F(n-4)种。

综上,有递推公式:F(1) = 1, F(2) = 2, F(3) = 4, F(4) = 7; F(n) = F(n-1) + F(n-2) + F(n-4), n>4

7、如果前面n-1个格子已经合法地涂上色,则最后一个格子只有唯一地一种涂法,有F(n-1)种方法;另外一种情况是前n-1个格子不是合法的,那么不合法的地方一定是其尾部,即第n-1个格子与第1个格子同色,那么最后一个格子有两种涂法,因此有2*F(n-2)种方法。

综上,有递推公式:F(1) = 3, F(2) = 6; F(n) = F(n-1) + 2*F(n-2), n>2

8、如果前n-1封信已经全部错装,只需从中任取一封和第n封错装,有(n-1)*F(n-1)种方式;另外如果前n-1封信中有且只有一封信没有装错(注意只能有一封,否则就呵呵了:),有(n-1)*F(n-2)种方式。

综上,有递推公式:F(1) = 0, F(2) = 1; F(n) = (n-1)*[F(n-1) + F(n-2)]。另外,它还有一个帅气的名字叫做错排公式。

PS:斐波那契数列实在太有用了,哪天有空写一下如何用生成函数求解其通项公式。

递推趣题

标签:

原文地址:http://www.cnblogs.com/xpjiang/p/4388540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!