(第85回の続き)
図書室にて
僕「こんな感じでどうだろう。まずはコッホ曲線を表現してみる」
図形 $x$ を $60$ 度右上がりの向きに回転させた図形を、 $x^+$ と表現する。
図形 $x$ を $60$ 度右下がりの向きに回転させた図形を、 $x^-$ と表現する。
図形 $x$ の右隣に図形 $y$ を並べた図形を $x\,y$ と表現する。
レベル1のコッホ曲線を $K_1$ と表現する。これは水平に置いた線分のことである。
レベル $n+1$ のコッホ曲線を $K_{n+1}$ と表現する。これは、 $$ K_n\,K_n^+\,K_n^-\,K_n $$ に等しい。
※ただし、 $n$ は $1$ 以上の整数とする。
テトラ「 $K_n\,K_n^+\,K_n^-\,K_n$ っていうのは……ははあ、なるほど! $K_n$ と $K_n^+$ と $K_n^-$ と $K_n$ を並べたということですね?」
僕「そうそう! うん、これはいいよ。まるで《漸化式》みたいにコッホ曲線が表現できる!」
$$ \left\{\begin{array}{llll} K_1 &= \text{水平の線分} \\ K_{n+1} &= K_n\,K_n^+\,K_n^-\,K_n \end{array}\right. $$
テトラ「おもしろいです! ヒルベルト曲線も同じようにできるんでしょうか」
僕「うん、きっとできるよ。やってみよう!」
テトラ「あたしも考えます!」
僕「まず、こうだよね。さっきのコッホ曲線(第85回参照)では、 $60$ 度の回転がポイントだったけど、ヒルベルト曲線では $90$ 度の回転が出てくる」
テトラ「はい、そうですね。右にコトン、左にコトンの二種類あります」
僕「だから、《レベル $n$ のヒルベルト曲線》を $H_n$ で表すとして、それを《 $90$ 度右回転》したものを $H_n^-$ と書いて、 《 $90$ 度左回転》したものを $H_n^+$ と書くことにしよう」
テトラ「三つの《つなぎ目》もありました」
僕「そうだね。垂直方向のつなぎ目を $v$ として、水平方向のつなぎ目を $h$ とすればいいかなあ」
テトラ「なるほどです。 $v$ はvertical、 $h$ はhorizontalですねっ!」
僕「そうそう。あとはそれを順番に並べて……と」
図形 $x$ を $90$ 度左に回転した図形を、 $x^+$ と表現する。
図形 $x$ を $90$ 度右に回転した図形を、 $x^-$ と表現する。
図形 $x$ に図形 $y$ をつなげた図形を $x\,y$ と表現する。
短い垂直の線分を $v$ で、短い水平の線分を $h$ と表現する。
レベル1のヒルベルト曲線を $H_1$ と表現する。これは「コの字」型になった図形である(開口部を下に向ける)。
レベル $n+1$ のヒルベルト曲線を $H_{n+1}$ と表現する。これは、 $$ H_n^-\,v\,H_n\,h\,H_n\,v\,H_n^+ $$ に等しい。
※ただし、 $n$ は $1$ 以上の整数とする。
テトラ「右回転( $H_n^-$ )、垂直つなぎ目( $v$ )、そのまま( $H_n$ )、水平つなぎ目( $h$ )、そのまま( $H_n$ )、垂直つなぎ目( $v$ )、左回転( $H_n^+$ )……確かにそうなりますね」
僕「まあ、でも、こうやって書いてみると《あたりまえ》に見えてくるね」
テトラ「先輩! でも《あたりまえから始めるのはいいこと》なんですよね?」
僕「そうだね!」
テトラ「では、《漸化式》の形にまとめますっ!」
$$ \left\{\begin{array}{llll} H_1 &= \text{コの字の図形(開口部は下向き)} \\ H_{n+1} &= H_n^-\,v\,H_n\,h\,H_n\,v\,H_n^+ \end{array}\right. $$
僕「うんうん」
テトラ「あれ? 先輩の書き方ですと、 $h$ は $v^+$ と表現してもいいですよね?」
僕「おっと、そうだね!」
L-システム
ミルカ「フラクタル?」
テトラ「そうなんです! コッホ曲線とヒルベルト曲線の構造を書こうとしているんです」
ミルカ「この記法は、君が?」
僕「うん、そうだよ。最初は図を描いていたんだけど、何だか数式っぽく書けるんじゃないかと思って。 レベルを $n$ で表せば、ちょうど《漸化式》もどきに書けたんだ」
ミルカ「L-システムに似ている」
僕「エルシステム?」
ミルカ「Lindenmayer System, 略してL-システムという。文字列を書き換えることでフラクタルのような再帰的構造を記述する方法」
僕「へえ」
テトラ「再帰的構造というのは何でしょう」
ミルカ「ある構造が、その構造自身によって定義される構造の総称。フラクタルは、再帰的構造を持った図形といえる」
テトラ「では、フラクタル=再帰的構造ということでしょうか」
ミルカ「いや、そうではない。再帰的構造は図形にかぎらないから」
僕「そのL-システムというのはどういうもの?」
ミルカ「たとえばコッホ曲線なら、こんなふうに表現できる」
開始文字列: F
変換ルール: F → F+F−−F+F
Fは《線分を描いて進む》を意味する。
+は《 $60$ 度左を向く》を意味する。
−は《 $60$ 度右を向く》を意味する。
僕「開始文字列と変換ルール……」
ミルカ「開始文字列から始める。最初はFだ。ここでは《線分を描いて進む》に相当する」
僕「なるほど。これはレベル1のコッホ曲線だね」
ミルカ「次がポイント。文字列を変換ルールの通りに置き換える。変換ルールがF → F+F−−F+Fだから、FをF+F−−F+Fで置き換える。 結局F+F−−F+Fになるだけだが」
僕「そうか、F+F−−F+Fに従って《図形を描く》のかな?」
ミルカ「その通り」
テトラ「これって、先輩の $K_2 = K_1\,K_1^+\,K_1^-\,K_1$ と同じではないんですか?」
僕「少し違うよ、テトラちゃん。僕の書き方だと図形を用意して並べただけだけど、L-システムだと全部図形を《描いて》いくんだ」
テトラ「……よくわかりません」
ミルカ「棒を持って砂浜に図形を描くのに似ている」
テトラ「?」
ミルカ「テトラは棒を持って砂浜に立っている。手には F+F−−F+F と書かれた紙を持っている。テトラはそれを読みながら砂浜を歩く。棒を砂の上に引きずりながら」
テトラ「ははあ……すると砂浜に図形が描かれますね」
ミルカ「『F』を読んだら前に進む。すると線分が描かれる。『+』を読んだら左 $60$ 度に身体の向きを変える。『−』を読んだら……」
テトラ「右 $60$ 度に身体の向きを変える?」
ミルカ「そう。そして、『F+F−−F+F』を読み終えたところで砂浜を振り返ると、そこには……」
テトラ「レベル2のコッホ曲線が描かれている!」
ミルカ「ということになる」
僕「なるほどねえ。レベル3も同じようにできるんだね。『F+F−−F+F』の『F』を、全部『F+F−−F+F』で置き換えればいいのか!」
テトラ「そ、それってものすごく長くなりませんか?」
ミルカ「こうなる」
レベル1: F
レベル2: F+F−−F+F
レベル3: F+F−−F+F+F+F−−F+F−−F+F−−F+F+F+F−−F+F
テトラ「うわわ……」
僕「レベル2のところをカッコでくくるとよくわかるね」
テトラ「ははあ……『F+F−−F+F』の『F』を『F+F−−F+F』で置き換えている……」
↓Fにカッコを付ける
レベル2: (F)+(F)−−(F)+(F)
↓カッコの中身をF+F−−F+Fで置き換える
レベル3: (F+F−−F+F)+(F+F−−F+F)−−(F+F−−F+F)+(F+F−−F+F)
↓カッコをはずす
レベル3: F+F−−F+F+F+F−−F+F−−F+F−−F+F+F+F−−F+F
僕「《全体が部分と相似になっている図形》というフラクタルがうまく表現できるわけか」
ミルカ「このような変換ルールの反復は、君の《漸化式》でいえば、 $K_3$ を $K_1$ だけで表現するのに似ている」
$K_1 = K_1$
$K_2 = K_1\,K_1^+\,K_1^-\,K_1$
$K_3 = (K_1\,K_1^+\,K_1^-\,K_1)\,(K_1\,K_1^+\,K_1^-\,K_1)^+\,(K_1\,K_1^+\,K_1^-\,K_1)^-\,(K_1\,K_1^+\,K_1^-\,K_1)$
僕「なるほど。僕の書き方だと、図形をまとめてそれを回転するためにカッコが必要になるなあ」
テトラ「ミルカさん! ヒルベルト曲線もL-システムで表現できるんでしょうか?」
ミルカ「もちろん」
この連載について
数学ガールの秘密ノート
数学青春物語「数学ガール」の中高生たちが数学トークをする楽しい読み物です。中学生や高校生の数学を題材に、 数学のおもしろさと学ぶよろこびを味わいましょう。本シリーズはすでに14巻以上も書籍化されている大人気連載です。 (毎週金曜日更新)