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

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是

对于这个问题,斐波那契被递归地定义为: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) 我试图用归纳法来证明,很可能是因为我做错了。对于L>1的一般情况,我不知道如何证明它

“~”表示变量有一个下标

让我们从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
加上
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
a
s
成为长度为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)
。现在我们在同一页上