与太話じゃないほうのソシャゲの話

FGOの中級者向け記事のブログだった

荊軻の『計算陣形』の話 その1「バイナリ」

「これでどうすれば計算できるのか、まだわからぬ」


「具体的なやり方は複雑です。ご興味がおありなら、あとで詳しくご説明いたします。とりあえず、この計算陣形は数字の考え方と記述の新方式にもとづいていることをご理解ください。この方式で必要な数字は、白旗と黒旗に対応する零と一、この二つだけです。しかしこの零と一であらゆる数字をあらわせます。また計算陣形は単純な要素を使って大きな数字を扱うことで、全体として高速な計算を実行できます」

 引用:『円』著.劉慈欣 , 訳.中原尚哉

https://www.hayakawabooks.com/n/n5fa90aa63885

 

 

さて、前回は始皇帝荊軻に円周率の計算を命じ、荊軻は旗を振る兵士で人力 コンピュータを作った』という傑作SF短編を紹介した。

 

 

omamesensei.hatenablog.com

 

 

作中で荊軻は兵士に謎の旗振り作業をさせた後で、

「具体的なやり方は複雑です。ご興味がおありなら、あとで詳しくご説明いたします。」などと言った。

 

しかし、『円』は短編なので尺がない。

結局最後まで「で、これでどう計算するのか」はわからないままだ。

 

一体全体、どうやって白と黒の旗振り人間で計算を行うのだろう?

f:id:omamesensei:20190730222128j:plain

 

 

まずはじめに二進法

 

1+1はいくつになるんだろう?

 

先に答えから宣言すると《計算陣形》に旗を振らせると1+1=10という結果が得られるということから語ろうか。

俺たちは1+1が10だ。10倍だぞ、10倍!

もちろん、そういう話ではなく

1+1の答えは10として出力されるのだ。

 

デジタルという言葉を聞いたことがないという人はいないだろうと思うけれど

実際その意味はよくわからないという人が多いだろう。

次いで多いのは「0と1であらわされる世界だよ」なんて答えだろうか。

実際のところ、デジタルは0と1であらわされる世界ではないのだけど、

今回はその「0と1であらわされる世界」の話をする。

 

デジタルでなくバイナリという名前の世界の話だ。

 

ああ、むずかしそうな言葉に怯えないで欲しい。

ここで扱うのは荊軻の示した簡単な黒白旗振り兵士のことだけだ。

 

荊軻「黒旗を挙げている状態」を「0」、「白旗を挙げている状態」を「1」とした。

これはつまり2進法による表記をしようとしているのである。

 

2進法とは?

それはバイナリの世界の話になる。

基本の数字が0と1だけの数字の世界でものを3つ数えるにはどうするか?

それを知るために、まず普段使う10進法の世界に立ち返ろう。

 

僕たちの世界は10進法が至る所で使われている。

10進法には数字がいくつあるかな?

53万? 35億? それとも5千兆? あるいは無限?

そんなことはない。

 

10進法における数字は十個。

0、1、2、3、4、5、6、7、8、9だ。

 

じゃあ9よりもひとつ大きい数をどう書くか?

10

つまり1と0という2つの数字を並べる。

 

例えば23という二文字が何を表しているかと言うと…

『9よりもひとつ大きい数』が『2』個と、『3』がある

 

このようにして存在しない数字を僕たちは書き記す。

「桁(けた)という概念のおかげでこれができるんだ。

 

さあ、バイナリ世界に戻ろう。

普段使う数字と交わるとややこしいのでここではあえて0と1の世界でなく白と黒で書かせてもらう。

 

まず0は旗振り兵士でどう表すか?

白旗を挙げさせることで0を表現できる。

0=白

次に1を兵士でどう表すか?

黒旗を挙げさせれば1だ。

1=黒

では2はどうしよう赤い旗でもあげさせようか?

いや、実際あとで荊軻はそれも試していたけれど、一旦バイナリ世界つまり白と黒しか旗がない世界で話を進めよう。

さあ、「桁(けた)」の概念の登場だ。

2とは「1よりもひとつ大きい数が1個と0がある状態」だね?

(0があるという表現はちょっとおかしいかもしれないが10という数字を見れば0があるということがわかるだろう。)

 

これをバイナリ世界で言うと

「黒よりもひとつ大きい数が黒個と白がある状態」

これもうわかんねえな。

だが描いてみれば単純である。

すなわち『黒白』だ。

二桁の黒白で2を表すんだ。

2=『黒白』

 

この『黒白』を一般的に言われる「デジタル(バイナリ)は0と1の世界」というように数字で表記すると黒が1白が0なので10になるんだ。

1+1が10になるというのはそういうことだ。

 

 

それじゃあ3は?

「1よりひとつ大きい数が1個と1」すなわち

「黒よりひとつ大きい数が黒個と黒」がある。『黒黒』と表せるね。

3=黒黒

 

ああ、でももう二桁がいっぱいになっちゃった。

10進法で言う99みたいな状態だ。

じゃあここから1増えたら100…三桁にしないと。

 

つまり黒白兵士の世界の4は…

4=黒白白

 

難しい計算は一旦置いておくので一旦これだけ数字があれば十分だ。

とはいえもう結構文字数を使ってしまっている。

今回はここまで!

 

次回、いよいよ1+1=10の計算をしよう。

 

omamesensei2.hatenadiary.jp