自定义二进制字符串的证明

时间:2014-09-25 00:45:06

标签: string binary proof

对于这个问题,递归地定义了斐波纳契:F~0 = 1 F~1 = 1 F~n = F~n-1 + F~n-2,对于n> = 2 因此,自定义二进制字符串始终以1开头,从不具有两个连续字符串。如果s = s~Ls~L-1 ... s~1是长度为L的字符串,其中s~i在{0,1}中,则s表示的数字为: n(s)= Sigma(i = 1至L)s~i×F~i 示例:n(1000101)= F~7 + F~3 + F~1 = 21 + 3 + 1 = 25

(a)证明每个L> = 1,如果s是长度为L的自定义二进制数,则n(s)> = F~L

(b)证明每个L> = 1,如果s是长度为L的自定义二进制数,则n(s)<1。 F~L + 1

我试图通过感应证明没有运气,因为我做错了。我不确定如何为L> L>的一般情况证明这一点。 1。

&#39;〜&#39;是表示变量的下标

1 个答案:

答案 0 :(得分:0)

让我们从A开始。

我会这样证明:

  

s成为L=k的自定义二进制字符串,以便k>=1。根据自定义二进制字符串的定义,我们必须s~k = 1因此n(s) = F~k + n(s~(k-1)...s(1)) = F~L + n(s~(k-1) ... s(1)),或s所代表的数字等于F~L加上剩余{{1}所代表的数字k-1的数字。由于我们不能有一个负长度的字符串,我们必须有s

但是,如果您需要以归纳方式证明它,您可以这样做:

  

基本情况:让n(s) >= F~LL=1成为长度为1的自定义二进制字符串。根据定义,我们必须拥有s。因此s=1,视需要。

     

归纳假设:假设n(s) = n(1) = 1xF~1 = F~Ln(s) >= F~L

     

归纳案例:设L=1,2,...k-1,让L=k成为长度为s的自定义二进制字符串。

     

如果k只包含一个等于s的数字,这相当于基本情况,我们就完成了。

     

如果1包含多个等于s的数字,请1为第二次出现的索引,让i为自定义二进制字符串数字t。然后我们有s~i ... s~1。由于n(s) = 1xF~k + n(t) = F~L + n(t)的长度为t,因此根据归纳假设,我们会根据需要k-i

好的,B会变得更难。我会以归纳的方式证明这一点,因为我觉得它更容易。

  

基本情况:让n(s) >= F~L + F~(k-i)>= F~L L=1成为长度为1的自定义二进制字符串。根据定义,我们必须拥有s。因此s=1

     

归纳假设:假设n(s)< F〜(L + 1)n(s) = n(1) = 1xF~1 = 1 < 2 = F~2 L = 1,2,...,K-1`。

     

归纳案例:让forL=k成为长度为s的自定义二进制字符串。

     

如果k只有一位数等于s,则相当于基本情况,我们就完成了。如果1有多个数字等于s,那么让1成为第二次出现的索引,i是由数字t表示的自定义二进制字符串{1}}。

     

很明显s~i ... 1。根据归纳假设,我们知道n(s) = F~L + n(t)。由于自定义二进制字符串的连续数字不能为n(t) < F~(i+1),因此我们还有1i <= L-2,这意味着i+1 <= L-1因为Fibonacci序列严格增加。

     

全部放在一起:F~(i+1) <= F~(L-1)

     

因此n(s) = F~L + n(t) < F~L + F~(i+1) < F~L + F~(L-1) = F~(L+1).,视需要。