我试图理解这一点:
http://tcs.uj.edu.pl/~walczak/fibonacci.pdf
我有一个单词是由几个= Fibonacci单词=的串联创建的, 我需要检查一下,这个词是另一个更大的文章的子词。字。
示例:
S0 0
S1 01
S2 010
S3 01001
S4 01001010
S5 0100101001001
...
输入 - >子词是:S2 + S1 + S1 = 0100101
输出:true,因为S2 + S1 + S1是S4的子词
0100101(subword)
01001010(S4)
我有理解英语的问题,也许如果可以,请 在java / c#或delphi中编写一些代码。
即使是代码示例,也许我会理解更多。
答案 0 :(得分:1)
如果表现不成问题:
您可以使用直接公式进行数字比较:
f(n)=
其中φ是黄金比例。 n 表示第n位。
//w denotes lookup word
isSubWord(w){
i=0;
cnt=0;
while(i!=w.length){
if(f(i+cnt)==w(cnt)){
++cnt;
}else{
cnt=0;
++i;
}
}