Sturmian文字列¶
初期文字 \(a\) , \(b\) , 指示配列 \(SW\) によるSturmian文字列
・Sw(n) = dummy
注 :SWを大きいリスト,要素を大きい数にするとおかしくなります.(入力制限で \(|SW|<30\) としています)
入力欄には1,1,1の様に正の整数を,区切りで入力してください.
アルゴリズムはループの方を使用.
定義¶
\(n\) 番目の Sturmian文字列 (Sturmian Word) \(Sw_n\) を以下のような定義で生成する.
指示配列 \(SW\) を定義する
\(SW = (SW_0,SW_1,...,SW_n)\)
- \(Sw_{-1} = b\)
- \(Sw_0 = a\)
- \(Sw_n = (Sw_{n-1})^{(SW[n])} + Sw_{n-2}\)
例えば,(4,1,3,2)として生成するとSturmian文字列は次の通りになる.
- \(Sw_{-1} = b\)
- \(Sw_0 = a\)
- \(Sw_1 = aaaab\)
- \(Sw_2 = aaaaba\)
- \(Sw_3 = aaaabaaaaabaaaaabaaaaab\)
- \(Sw_4 = aaaabaaaaabaaaaabaaaaabaaaabaaaaabaaaaabaaaaabaaaaba\)
性質¶
- \(SW = [SW_0,SW_1,…,SW_n]\) の要素をすべて1にした場合,フィボナッチ文字列と同じ文字列になる.
アルゴリズム集¶
\(n\) 番目のStrumian文字列を返す¶
ループを用いたもの /Scripts/Python/SW.py
参考文献¶
- MARCIN PIATKOWSKI and WOJCIECH RYTTER, “ASYMPTOTIC BEHAVIOUR OF THE MAXIMAL NUMBER OF SQUARES IN STANDARD STURMIAN WORDS”, International Journal of Foundations of Computer Science, Vol. 23, No. 02, pp.303-321, 2012 <http://www.worldscientific.com/doi/abs/10.1142/S012905411240014X>