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>