String 自定义二进制字符串的证明
对于这个问题,斐波那契被递归地定义为:F~0=1f~1=1f~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)=σ(i=1到L)s~i x 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)String 自定义二进制字符串的证明,string,binary,proof,String,Binary,Proof,对于这个问题,斐波那契被递归地定义为:F~0=1f~1=1f~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)=σ(i=1到L)s~i x 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是
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
加上s
的剩余k-1
位所表示的数字。因为不能有长度为负的字符串,所以必须有n(s)>=F~L
但是,如果您需要归纳证明,您可以这样做:
基本大小写:让L=1
和s
成为长度为1的自定义二进制字符串。根据定义,我们必须有s=1
。因此,根据需要,n(s)=n(1)=1xF~1=F~L
归纳假设:假设n(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
,根据归纳假设,我们得到n(s)>=F~L+F~(k-i)>=F~L
好吧,B会更难。我将以归纳的方式证明它,因为我认为它更容易
基本大小写:让L=1
as
成为长度为1的自定义二进制字符串。根据定义,我们必须有s=1
。因此n(s)=n(1)=1xF~1=1<2=F~2
归纳假设:假设n(s)对于
L=1,2,…,k-1`
归纳情况:让L=k
和s
成为长度k
的自定义二进制字符串
如果s
只有一个数字等于1
,这与基本情况相同,我们就完成了。如果s
有多个等于1
的数字,则将i
作为第二次出现的索引,t
作为由数字s~i>表示的自定义二进制字符串。。。1
很明显,
n(s)=F~L+n(t)
。通过归纳假设,我们知道n(t)
。由于自定义二进制字符串不能有连续的数字为1
,因此我们也有,你确定你把问题写对了吗?我觉得这两种说法都是假的。对于A部分,考虑字符串<代码> 10 <代码>,L=2。根据你的公式,n(10)=1
,它小于F~2=2
。对于B部分,考虑<代码> 101 <代码>,长度为3。code>n(101)=1xF~1+1xF~3=1+3=4
,这正好等于F~L+1
忘了添加示例:n(1000101)=F~7+F~3+F~1=21+3+1=25,所以对于n(10)=2,因为n(s)=s2 x f2+s1 x f1=2是的,关于n(10)
。好的,那么a部分是真的,很容易证明(不需要归纳)。然而,我仍然不相信b部分对所有L都是正确的。我在计算n(101)
,或者在解释我得到的答案时,有没有犯过任何错误?呃,你没有,但是F~L+1更大,因为我们谈论的L是s的长度。所以s=3,n(101)=4的长度,但F~L+1=F~4=5Oh,好吧,我误解了;我以为上限是(F~L)+1
,但你的意思是F~(L+1)
。现在我们在同一页上