Java 并没有特定长度的连续零的二进制字符串的数量和斐波那契数相关。

Java 并没有特定长度的连续零的二进制字符串的数量和斐波那契数相关。,java,algorithm,fibonacci,Java,Algorithm,Fibonacci,我正在尝试开发一种算法,该算法可以确定二进制字符串的数量,而不需要一定长度的连续零。我找到了基于斐波那契序列的解决方案。我不明白,以0或1结尾且不包含重复0的二进制字符串如何依赖于Fibonnacci序列

我正在尝试开发一种算法,该算法可以确定二进制字符串的数量,而不需要一定长度的连续零。我找到了基于斐波那契序列的解决方案。我不明白,以0或1结尾且不包含重复0的二进制字符串如何依赖于Fibonnacci序列<有人能解释一下吗

例如,对于长度3,答案为5,因为:

 000
 001
*010
*011
 100
*101
*110
*111
*没有连续零的字符串

让我们来看看Z(k)是有效二进制字符串的数量,以0结尾。表示这样的字符串
*0

O(k)是有效二进制字符串的数目,以1结尾。表示这样的字符串
*1

我们只需在
*1
末尾添加
0
就可以构建长度为
k+1
*0
,因此

Z(k+1) = O(k)
O(k+1) = O(k) + Z(k)
我们可以使用长度
k+1
构建
*1
,在任何
*1
的末尾和任何
*0
的末尾添加
1
,因此

Z(k+1) = O(k)
O(k+1) = O(k) + Z(k)
考虑长度为(k+2)的所有有效字符串


你看到类似斐波那契的关系了吗?

你是在问有多少种方法可以使长度为n的二进制字符串没有2个或更多0的连续段?就是这样,非常感谢,很抱歉,迟到了:)