斐波那契词的子词

时间:2012-01-24 23:37:18

标签: c# java algorithm fibonacci

我试图理解这一点:

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中编写一些代码。

即使是代码示例,也许我会理解更多。

1 个答案:

答案 0 :(得分:1)

如果表现不成问题:

您可以使用直接公式进行数字比较:

f(n)= formula

其中φ是黄金比例。 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;
    }
}