长度为k的可能二进制字符串的数量

时间:2012-08-14 07:54:13

标签: puzzle

最近有一位朋友被问到这个问题:

你必须计算长度为“K”的二进制字符串的数量。 约束:每个0在其左边有一个1。

2 个答案:

答案 0 :(得分:2)

这个问题可以改写: 如果没有两个连续的0,则有多少长度为K的二进制序列,但第一个元素应为1(否则约束失败)。让我们忘记第一个元素(我们可以做到这一点,因为它总是固定的)。 然后我们得到了一个非常着名的任务,听起来像这样:“长度为K-1且没有连续0的二进制序列的数量是多少。”可以找到解释,例如here

然后答案是F(K + 1),其中F(K)是从(1 1 2 ...)开始的第K个斐波纳契数。

答案 1 :(得分:0)

∑ From n=0 to ⌊K/2⌋ of (K-n)Cn; n是字符串中的零数

这个想法是将每个0与1分组并找到字符串组合的数量,对于n个零,将有n个分组到它们,因此字符串变为(k-n)个元素长。只有 K / 2 零,因为没有足够的零到左边的左边。
例如。 111111[10][10]1[10],K = 13,n = 3