Articles tagged with: バイオ

不思議な数列フィボナッチの秘密


かつての私は、数列が苦手だった。
中学生の頃は、一年生の頃こそ数学のテストは全て百点を取っていたが、二次関数が登場する二年生以降は惨敗の連続だった。百点満点中、10点台や20点台を連発していたことを覚えている。

こうした数式を覚えて、いったい世の中の何の役に立つのか。当時の私にはそれが全くわからなかった。当時の教師もそうした疑問には全く応えてくれなかった。もっとも、こちらからそのような問いを発することもなかったのだが。
そんな気持ちのまま、二次関数や座標や配列、そして数式を一方的に教えられても全く興味が持てずにいた。それが当時の私だった。

ところがここ二十年、私はシステムの開発者として生計を立てている。
かつての私が全く人生に役に立たない、と切り捨てていた数学を普段から業務で用いている。
もし昔の私に会えるのなら、勉強を怠っていた自分に数学が役に立つことを教えたいくらいだ。実例を交えながら。

例えばExcelのVBAを使い、セルの値を得たい場合を考えてみる。
D列からデータが始まるセル範囲で、求めたいデータが三列おきに現れるとする。それをどうやってマクロで取り込むか。
そうした際に数列の考え方を使っているのだ。
具体的にはこのようにマクロを組む。
・繰り返しで一定の条件に達するまで処理を行う。
・繰り返しの処理の中で変数の値に1を加える。
・上記の変数に3をかける。
・その掛けた結果に4を加える。
すると、繰り返し処理の中で得られる変数の値は、一つ目は4、次は7、以降は10、13、16、19と続く。これらの列番号をExcelの列番号、つまりアルファベットに当てはめるとD、G、J、M、P、Sとなる。

そのように、一定の規則でつながるセルの位置や値を見極め、それを処理として実装する処理は事務作業で頻繁に発生する。そうした作業はExcelのデータを参照し、編集を行う際に必須だからだ。日常的に必要になってくるといえよう。Excelだけでなく、他のプログラムでもプログラム時に数列の考え方は必須だ。
私は当初、業務に必要になっていたからそうしたプログラムを覚えていた。そしてプログラムを日常の業務で当たり前に使うようになってきたある日、その営みこそ、私がかつて苦手としていた数列や配列そのものということに気づいた。

そもそも私はなぜ数学が苦手になってしまったのだろう。よくわからない。子供の頃は、数字の不思議な性質に興味を持っていた時期もあったはずなのに。
例えば切符に書かれた数字。最近では電車に乗る際に切符を買う機会がなくなってしまったが、かつては切符を買うとその横に四桁の数字が印字されていた。その四桁の数字のそれぞれを、四則演算を使って10にするという遊びは欠かさず行っていた。
その遊び、実は数論の初歩として扱われるそうだ。

そうした数字の不思議な性質は、子供心に不思議に思っていた。
今も、ネットで〇〇数を検索してみると、不思議な数の事例が書かれた記事は無数に出てくる。〇〇には例えば完全、素、三角、四角、友誼、示性、黄金などが当てはまる。

本書は、不思議な数の中でもフィボナッチ数に焦点を当てている。フィボナッチ数とは、並んだ数値の二つの和を次の項目の値としたものだ。0,1,1,2,3,5,8,13,21,34,55,89,144のように。数字が徐々に大きくなっていくのが分かる。しかもそれぞれの数字には一見すると規則性が感じられない。

ところがこの数字の並びを図形にしてみるとさまざまな興味深い動きを描く。例えばカタツムリの殻。螺旋が中から外に広がるにつれ徐々に大きくなる。この大きくなる倍率はすべてフィボナッチ数列に従っている。またあらゆる植物の葉のつき方を真上から見ると、それぞれが日の当たるように絶妙に配置されている。これらも全てフィボナッチ数列の並びに近い。
ほかにもひまわりの種やDNAの螺旋構造など、自然界でフィボナッチ数列が現れる事例は多いという。自然は効率的な生態系を作るにあたってフィボナッチ数を利用しているのだ。

最近では昆虫や植物の機能や動きを研究する動きがある。バイオミメティクスと呼ぶこれらの研究から、科学上の発見や、新たな素材の開発や商品の機能が生まれることがあるという。
フィボナッチ数列を学ぶことで、私たちの非効率的な営みが、より効率的に変わるかもしれないのだ。

本書にはフィボナッチ数にまつわる不思議な性質や計算結果が豊富に紹介される。
正直に言うと、それらの計算結果を実生活や科学の何かに役立てられる自信は私にはない。だが、そうした法則を見つけてきたことで、人類はこれまで科学を発展させてきた。

おそらくフィボナッチ数に隠された可能性はまだあるのだろう。フィボナッチ数は、未来の人類が技術的なブレークスルーを達成する際に貢献してくれると期待している。
例えば、私が思いついたのは暗号だ。暗号化にフィボナッチ数を役立てられるように思える。
暗号の一般的な原理は、ある数とある数を掛けて出来た数値からは何と何を掛けた結果なのかが推測しにくい性質に基づいている。例えば桁数が約300桁ある二つの素数のそれぞれを掛けた数があったとしても、それが掛けられた二つの素数を見つけ出すのに、最新鋭のスパコンでも何億年もかかり、量子コンピューターでも非現実的な時間を要するという。

この暗号を作る際、フィボナッチ数列を使って作るのはどうだろう。フィボナッチ数列も数が膨大だが、それらは全て数式で表せる。
これを何かの解読キーとして用い、何番目のキーを使わなければ復号できないとすれば、暗号として利用できるように思う。もちろん、私が思いつくような事など、数学者がとっくの昔に思いついているだろうけど。
だが、暗号以外にも情報処理の分野でフィボナッチ数が活用できるかもしれないと考えてみた。
私のような素人でも暗号への使い道がすぐに思いつけたほどだから、優秀な数学者が集まればフィボナッチ数列のより有用な使い道を考えてくれるはずだ。

かつての私のような数学が苦手な人にこそ、本書は読んでもらいたい。

‘2020/07/12-2020/07/18