フィボナッチ文字列https://www.iss.is.tohoku.ac.jp/stringology/Strings/Fibonacci/index.html
Fib1=b
Fib2=a
Fib3=ab
Fib4=aba
Fib5=abaab
Fib6=abaababa
Fib7=abaababaabaab
Fib8=abaababaabaababaababa
Fib9=abaababaabaababaababaabaababaabaab
Fib10=abaababaabaababaababaabaababaabaababaababaabaababaababa
Fibn は, Fibn−1 に対して次の規則に従った変換を行うことにより生成することもできる. ただし, Pd0=a とする.
a→ab
b→a
〇javaのStringBufferクラスと上の規則使って上記の表を作りたいです。Fib=4以降が間違っているようです。
2日考えてわからないですが理解したいです。解説していただきたいです。(fib1 = Aで作りたいです)
〇追記:具体的にはfor文とreplace()等を使って繰り返し変換し、 表を作りたいというもので、 Fib4=ABAABとなるようにしたいのですがうまくいきません。 期待する結果になるにはFib4の場合 Fib3=ABAの1番目のAをAB ,2番目のBをA,3番目のAをABに変換するのですがFib4=ABAAとなっており3番目の変換がされていないと思います。 最終的に、一つの文字列に対して2種類の変換を複数回を行うfor文の作り方がわからないです。なのでそのアドバイスをいただきたいです。
java
考えたコード public class fibw { public static void main(String[] args){ StringBuffer f = new StringBuffer("B"); for(int i = 1; i<=10;++i){ for(int x=0;x<=f.length()-1;++x){ char chAB = f.charAt(x); if(chAB == 'A')f.replace(x,x+1,"AB");x=x+1; if(chAB == 'B')f.replace(x-1,x,"A"); } System.out.println("Fib"+i+"= "+f); } } } 実行結果 Fib1= A Fib2= AB Fib3= ABA Fib4= ABAA Fib5= ABAAAB Fib6= ABAAABABA Fib7= ABAAABABAAAA Fib8= ABAAABABAAAAABABAB Fib9= ABAAABABAAAAABABABABAAAAA Fib10= ABAAABABAAAAABABABABAAAAAAAAABABABAB
回答2件
あなたの回答
tips
プレビュー