ハッカーやクラッカー達を描いた漫画『王様達のヴァイキング』が面白いです。主人公の「是枝一希(これえだかずき)」がハッカーとして成長していく過程がめっちゃ熱いです。
そんな主人公が愛用しているThinkPadの天板には数字のシールがたくさん貼られています。それらの数字が何を意味しているか、エンジニアとしては気になるところです。
これらの数字・コード・数式の解読に挑戦しました。
256
2の8乗。コンピュータのデータ周りでよく見る数字です。1ビットは0か1の情報を持ちます。それを8つ並べると256通りの情報を表現できます。これが32バイト(=256ビット)です。
また、黒のシールは「算木数字」という昔の日本で使われていた記法で256を表現しています。
ソースコード
/* sqrt sample */ #include <stdio.h> #include <math.h> int main() { double param, result; param = 1024.0; result = sqrt(param); printf("sqrt(%f) = %f\n", param, result); return 0; }
C言語で書かれた平方根を算出するサンプルプログラムです。1024の平方根を求めています。実行すると次の結果となります。
sqrt(1024.000000) = 32.000000
(1 + sqrt(5)) / 2
黄金比です。1:1.618...の右側がこの式を計算すると算出されます。人が見て美しいと感じる比率として有名です。
各所に散りばめられた数字
大抵がフィボナッチ数列に関連しそうな数字です。フィボナッチ数列とは、ざっくりいうと、1つ目と2つ目の数字の和が3つ目になる数列です。1、1、2、3、5、8、…と続きます。フィボナッチ数列は画像の真ん中あたりの1から右下にかけて続いています。
はじめはフィボナッチ数列は右下のブロックだけかなと思っていたのですが、実は他の数字も関係がありそうです。というのも、他の数字はフィボナッチ数列の項には一致しないため、関連がないだろうと思っていました。しかし、具体的に並べてみると法則がありそうでした。
n番目 | フィボナッチ数 | 是枝PCの数字 |
---|---|---|
1 | 1 | 1 |
2 | 1 | 1 |
3 | 2 | 2 |
4 | 3 | 3 |
5 | 5 | 5 |
6 | 8 | 8 |
7 | 13 | 13 |
8 | 21 | 21 |
9 | 34 | 34 |
10 | 55 | 55 |
11 | 89 | 89 |
12 | 144 | 144 |
13 | 233 | 233 |
14 | 377 | 377 |
15 | 610 | 610 |
16 | 987 | 987 |
17 | 1597 | 1597 |
18 | 2584 | 2584 |
19 | 4181 | 4181 |
20 | 6765 | 6765 |
21 | 10946 | 10946 |
22 | 17711 | 1711 |
23 | 28657 | 28657 |
24 | 46368 | 46368 |
25 | 75025 | 75025 |
26 | 121393 | 121393 |
27 | 196418 | 196418 |
28 | 317811 | 317811 |
29 | 514229 | 51239 |
30 | 832040 | (なし) |
31 | 1346269 | (なし) |
32 | 2178309 | 2178339 |
33 | 3524578 | 354628 |
34 | 5702887 | 5702967 |
35 | 9227465 | 9227595 |
36 | 14930352 | 14930563 |
37 | 24157817 | 24158158 |
22番目は1が1個見当たらないですが、隠れているだけですかね?そして29番目以降は値がずれてきていますが、近い、あるいはそれらしい値になっています。(この並びに気づくのに結構時間かかりました…)
9999212859999939
これが最後に残りました。フィボナッチ数の項を続けて見てみてもそれらしい値ではなさそうです。