読者です 読者をやめる 読者になる 読者になる

まんぼう日記

takataka's diary

この記事は楊枝何本ぶん?

某機関の発行する「理工ジャーナル」という雑誌がありまして,その編集長やってます.なので,年2回の発行の度に「編集後記」を書かないといけません.普通は,その号の見どころとか,発行時期の季節や行事にからめた話を書くもんでしょう.でも,ちっともいいネタ思い浮かばへんのですよ,これが.そういうわけで前回は,歳をとると時が経つのが早く感じる現象を数式で表してみた - まんぼう日記 のネタ使いました.「どうせ誰もこんなとこ読んでへんやろし」って,「編集後記」に数式とかグラフ入れるっちゅう暴挙 (^^;

 

というわけで,また変な路線の記事を書きます.春の号の締切がせまってきたもんで… (^^)

 

コンピュータなどが情報を 0 と 1 で表すということはみなさんご存知かと思います.例えば,3桁ならば \[ 000, 001, 010, 011, 100, 101, 110, 111 \] と8通りのパターンを作ることができます.1桁目に0か1か2通り,2桁目も2通り,3桁目も2通り,だから全部で \(2 \times 2 \times 2 = 2^3 = 8 \) 通り.で,この8通りのパターンを使い,\( 000 \) は「りんご」,\(001\) は「みかん」,…,\(111\) は「ドリアン」みたいに適当に割り当てを決めてやると,3桁の0/1で8種類のものを表せることになります.0/1の並びの桁数は bit (ビット)という単位で数えますので,言い換えると「3bitでは8種類のもを表せる」ということになります.同様に,4bitなら \( 2^4 = 16\) 通り,\(n\)bitなら \( 2^n \) 通り,ということになりますね.

 

このノリでアルファベットや数字などを表そうとしたら,何bit(何桁)あればよいでしょう? 英語のアルファベットは大文字小文字で52種類,数字が10種類やから,各種記号をあわせて計100種類くらい表せればいけそうです.6bitやと… \( 2^6 = 64 \) でちと足りません.7bitやと, \( 2^7 = 128 \) でいい感じ.とまあこういうことで,コンピュータの世界では,英数字等を1文字あたり7bitの0/1で表すのが普通です.どの文字をどの 0/1 の並び方に対応させるかは,共通規格として定められてます.共通にしとかへんと大変ですからね.

 

コンピュータで英数字等を扱うためのこの規格は,ASCII(ASCII - Wikipedia)と呼ばれています.ASCIIでは,例えば 'A' は \( 1000001 \),'Z'は \( 1011010 \) となります*1.0 と 1 しか扱えないはずのコンピュータが文字を扱えるのは,裏でこういう変換をしているからです.

 

さて.ASCII を使えば英数字を 0/1 で表せるんやから,身近なもんに 0 と 1 の二通りに対応させた印つけることで,文字列を表す情報を記録できますね.てなわけで探してみたら,ええのんありました.爪楊枝です.長さは 60mm 弱,ペンで塗ったり塗らへんかったりするなら,1mm刻み位いけそう.ということで,56bitつまり8文字分の0/1を刻みつけてみることにしました.

 

ちうわけで,できたのがこちら. 

f:id:takatakamanbou:20170129131853j:plain

色鉛筆を使って,7bitごとに色を変えてみました.塗ってあるのが1で,塗ってないのが0です.左端が最初の文字,左から順に \( 1010100 \) ちうことになってます.暇な人は解読してみてください.まあ見たまんまですが (^^)

 

多大な労力を費やした実験の結果,爪楊枝一本あたり 56bitの 0/1 を表せる,つまり,爪楊枝は56bitの情報を記録させる記憶メディアとして使える,ということがわかりました.お店で売ってる爪楊枝パックはだいたい500本くらい入ってるみたい(すいません,そこを実際に数えるとこまではやってません)やから,1パックでは約 4000 字相当.なんか意外に高密度なメディアな気がしなくもない….

 

いまどきの記憶メディア・装置と比較して上記の記憶容量がどんなもんか,もひとつピンとこーへんので,もうちょっと考察続けてみます.いまどきのPCやスマホの記憶装置(DRAM使ったPCの主記憶とかフラッシュメモリ使ったスマートフォンの補助記憶とか)の容量の代表値として,16GiB を採ってみましょう.これをbit単位に直すと,

\[ 16 [\mbox{GiB}] = 16 \times 2^{30} \times 8 [\mbox{bit}] = 2^{37}  [\mbox{bit}]\]

です.したがって,1パックに入ってる爪楊枝の数を \( 512 = 2^9 \) とすると,

\[ \frac{2^{37}}{56 \times 2^{9}} =  \frac{32}{7}\times 2^{20} \approx 4.79 \times 10^{6}\] 

となりました.つまり,「1mm刻みで印を付けられる爪楊枝が480万パックあればいまどきのPCスマホと同等の記憶容量」っちうことです….なるほど.

 

480万個の爪楊枝パックを平らな面にぎっしり敷き詰めるとしたらその面積は…って,もういいか.

*1:「普通は1文字分を8bitで扱うよ」とか,「日本語の場合は…」とかは省略.