トゥエ・モース列で描くコッホ曲線

投稿日:
研究
数学
フラクタル

トゥエ・モース列で描くコッホ曲線

トゥエ・モース列という列は

0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, ...

という 01 列です。この数列の法則、見つけられますか?

トゥエ・モース列の作り方

トゥエ・モース列 (Thue-Morse) を作るひとつの方法は、以下の文字列の増やし方で長い文字列を得ることです。

を見てみると、 と、それを 01 反転した をつなげているのがわかりますね。

前回ご紹介したフィボナッチ文字列では、二項漸化式として直前の 2 つの項が基本的には必要でしたが、これは 1 つ前の項だけで次の項が求まります。

そして、これを 01 列として並べた

0, 1, 1, 0, 1, 0, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, ... (0110100110010110...)

をトゥエ・モース列 (Thue-Morse sequence)と言います(表記揺れで「スー・モース列」とされている文献もあります)。

こんなコッホ曲線の描き方があった

という数列を、日曜数学会や数学デーのキグロさんが最近自力で発見したようで、それを改めて調べていたのが今回の記事執筆のきっかけです。

それで、トゥエ・モース列はWolfram 言語の ThueMorse 関数のページにもあったよなと調べていたら、アプリケーションの項で、なんとトゥエ・モース列を元にコッホ曲線が描けるとのことです。

Graphics[Line[AnglePath[Array[ThueMorse, 4096] 2 Pi/3]]]

あまりにもさらっと書かれているので拍子抜けしましたが、トゥエ・モース列にしたがって 60 度ごと角度を変えたタートルグラフィックスで描いているようです。

ただ、ページに書かれていたのは 4096 サンプルでの描画で、以下のように 256 サンプル、1024 サンプルと変えてみて、かなりごまかしたようなパスになっていました。

しかしながら、一見つながりがないようなところでフラクタルが出てきたりするのは面白いですね。

それではまた。

著者紹介

岩淵夕希物智 butchi_y

言語を作る博士(工学)

ART, Research, Techの人

スポンサーリンク