Java 并没有特定长度的连续零的二进制字符串的数量和斐波那契数相关。
我正在尝试开发一种算法,该算法可以确定二进制字符串的数量,而不需要一定长度的连续零。我找到了基于斐波那契序列的解决方案。我不明白,以0或1结尾且不包含重复0的二进制字符串如何依赖于Fibonnacci序列<有人能解释一下吗 例如,对于长度3,答案为5,因为:Java 并没有特定长度的连续零的二进制字符串的数量和斐波那契数相关。,java,algorithm,fibonacci,Java,Algorithm,Fibonacci,我正在尝试开发一种算法,该算法可以确定二进制字符串的数量,而不需要一定长度的连续零。我找到了基于斐波那契序列的解决方案。我不明白,以0或1结尾且不包含重复0的二进制字符串如何依赖于Fibonnacci序列
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的连续段?就是这样,非常感谢,很抱歉,迟到了:)