博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
专题——基础递推
阅读量:5335 次
发布时间:2019-06-15

本文共 1464 字,大约阅读时间需要 4 分钟。

汉诺塔问题

Hanoi塔由n个大小不同的圆盘和三根木柱a,b,c组成。开始时,这n个圆盘由大到小依次套在a柱上,如图所示。

要求把a柱上n个圆盘按下述规则移到c柱上:
(1)一次只能移一个圆盘;
(2)圆盘只能在三个柱上存放;
(3)在移动过程中,不允许大盘压小盘。
问将这n个盘子从a柱移动到c柱上,总计需要移动多少次盘子?

  • 直接想不好想。先假设移动直径为1~n-1的原盘到C,再移动直径为n的原盘到B上,再将直径为1~n-1的原盘移动到B上。
  • f(n)=2*f(n-1)+1

Fibonacci数列

一.兔子繁殖

如果一对兔子每月能生一对小兔(一雄一雌),而每对小兔在它出生后的一个月成熟,出生后两个月,能开始生一对小兔,之后每月生一对小兔,假定在不发生死亡的情况下,由一对出生的小兔开始,50个月后会有多少对兔子?

  • f(n)为第n月的所有兔子数=第n月成熟的兔子+第n月初生的兔子
  • 第n月成熟的兔子 = f(n-1) ,因为过一个月就可以成熟
  • 第n月初生的兔子 = 第n-1月成熟的兔子 = 第n-2月的兔子总和,即f(n-2)
  • f(n)=f(n-1)+f(n-2)

二.完美覆盖

有2×n的一个长方形棋盘,用一些1×2的骨牌铺满方格.例如n=3时,在2×3的棋盘上用1×2的骨片覆盖,共有3种铺法。试对给出的任意一个n(n>0),输出铺法总数.

  • 1 .f(n)=第一列一个竖放+前两列两个横放=f(n-1)+f(n-2)
  • 2 .规定第i列为第一个竖放的位置,
    • n为奇数,f(n)=f(n-1)+f(n-3)+f(n-5)+…+f(0)
    • n为偶数,f(n)=f(n-1)+f(n-3)+f(n-5)+…+f(1) +1(加上没有竖放的情况)

Calatan数 f(n+1)=f(n)*(4*n-6)/n

一.凸多边形的三角形剖分

在一个凸多边形中,通过若干条互不相交的对角线,把这个多边形剖分成了若干个三角形,输入凸多边形的边数n,求不同剖分的方案数C(n)。例如当n=5时,有5种不同的方案.

  • 边(1,n)终究会包含在一个三角形中,枚举三角形(1,n,k),
    f(n)=2<=k<=n1f(k)f(nk+1)
    f(2)是一条线段

危险的组合

在一个长度为n的字符串中,只包含L和U,如果3个U连续出现就非法,求给定长度n的非法串的数量。

  • 非法=总共-合法
  • 从第i个位置开始有三个连续的U,强制规定i-1不能放U,[1,i-2]是不能出现3个连续U的方案数=[1,i-2]总共的-[1,i-2]合法的。

第二类Stirling数

n个有区别的球放到m个相同的盒子中,要求无一空盒,其不同的方案数用S(n,m)表示,称为第二类Stirling数。

  • 对于球i,要么单独放一个盒子,要么等其他的球放完了之后,随便找个位置和其他球一起放。
  • f(n,m)=f(n-1,m-1)+f(n-1,m)*m

极值问题

已知m、n为整数,且满足下列两个条件:

1<= m, n <= k
(n^2mnm^2)2=1
输入正整数k ,(1<=k<=10^9),求一组满足上述两个条件的m,n ,并且使m2+n2的值最大。

  • (n^2-mn-m^2)^2=(m^2+nm-n^2)^2
    =[(n+m)^2-n(n+m)-n^2]^2
    其中:n’=m+n,m’=n。
  • 可知,(1,1)一定满足方程,向后递推,直到最大就可以了。

转载于:https://www.cnblogs.com/katarinayuan/p/6572810.html

你可能感兴趣的文章
jmeter(五)创建web测试计划
查看>>
使用git pull文件时和本地文件冲突怎么办?
查看>>
spring aop advice注解实现的几种方式
查看>>
msp430入门编程03
查看>>
mysql主从读写分离,分库分表
查看>>
python基本数据类型
查看>>
JAVA web 中文传参乱码解决方案:(最简洁方案)
查看>>
iOS 下载功能(断点续传)
查看>>
hdu1403 Longest Common Substring
查看>>
1305: [CQOI2009]dance跳舞 - BZOJ
查看>>
Redis数据库No-SQL的介绍安装和使用
查看>>
Graphics绘图闪烁的问题
查看>>
移动Web开发之- 移动化用户体验设计
查看>>
关于TDD的思考
查看>>
Cocos2d-x学习之windows 7 android环境搭建
查看>>
python帮助文档查看
查看>>
将html代码中的大写标签转换成小写标签
查看>>
jmeter多线程组间的参数传递
查看>>
零散笔记
查看>>
子父类不同属性代码执行顺序
查看>>