Chinaunix首页 | 论坛 | 博客
  • 博客访问: 984498
  • 博文数量: 150
  • 博客积分: 3017
  • 博客等级: 少校
  • 技术积分: 3829
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-19 14:40
个人简介

Now in Baidu WISE team

文章分类

全部博文(150)

文章存档

2014年(8)

2013年(31)

2012年(111)

分类: C/C++

2013-11-19 22:37:11

有一串数字   到底有几位我们可以自己先输入n来定  然后每位上的数字要么0  要么1   这样其实是有2的n次方种情况  但现在我要把相邻两位是1的排除了  这时候有多少种可能性。


一个小盆友突然给我了这道题。开始推错了2回...没想到最后推出来事斐波拉契数列。退化了,好无语。

设对于n位数, 满足条件的数目 最右一位是1的情况的集合为L(n), 最右一位是0的情况的集合是M(n)

当x=n+1 那么a.对于任意一个L(n)中的情况, 后面补0
                    b.对于任意一个M(n)中的情况, 后面补0
                    c.对于任意一个M(n)中的情况, 后面补1

得到最后一位是0的情况(a & b) :  M(n+1) = L(n)+ M(n)
      最后一位是1的情况(c)        :  L(n+1) = M(n)

所以
f(n+1) = L(n)+ M(n) + M(n) = f(n) + L(n-1)+M(n-1) = f(n) + f(n-1)


阅读(2156) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~