この記事は『数学ガールの秘密ノート/ビットとバイナリー』として書籍化されています。
登場人物紹介
僕:数学が好きな高校生。
ユーリ:僕のいとこの中学生。僕のことを《お兄ちゃん》と呼ぶ。
$2$ 進数の話をしているとき、 ユーリが言い出した《$-2$ 進数(マイナスにしんすう)》に話が発展して……(第101回参照)。
ユーリ「ぐちゃぐちゃじゃん!」
僕「いや、少し考えればわかるよ……こうかな」
$-2$ 進数で数を表したらどうなるか
$$ \begin{array}{rrl} \REMTEXT{$-2$進数} & \REMTEXT{$10$進数} & \REMTEXT{メモ} \\ \hline 0 & 0 & \\ 1 & 1 & \\ 110 & 2 & \REMTEXT{$(-2)^2 = 4$に、負数$(-2)^1 = -2$を加える} \\ 111 & 3 & \REMTEXT{$2$に$1$加える} \\ 100 & 4 & \REMTEXT{$(-2)^2 = 4$} \\ 101 & 5 & \REMTEXT{$4$に$1$加える} \\ 11010 & 6 & \REMTEXT{$(-2)^4 = 16$に、負数$(-2)^3 = -8$と$(-2)^1 = -2$を加える} \\ 11011 & 7 & \REMTEXT{$6$に$1$加える} \\ \vdots & \vdots & \vdots \\ \end{array} $$
ユーリ「あれ……お兄ちゃん! パターンが見える! ほらほら、縦読みすれば!」
僕「ほんとだ! よし、もっと先まで書いてみようか」
そのとき玄関のベルが鳴り、少しして母がやってきた。
母「ミルカさんと、もう一人、お友達がいらしたわよ」
僕「ミルカさん!」
ユーリ「ミルカさま!」
ミルカ「今日はリサを連れてきた」
リサ「……」
リサはミルカさんの親戚で、僕たちの後輩にあたる。 無造作に切った赤い髪。 彼女はいつも真っ赤なノートブック・コンピュータを持ち歩いている。
ミルカ「君の家に来たがったのはリサなんだが。来たくてしょうがないと」
僕「え?」
リサ「誇張」
登場人物紹介(追加)
ミルカさん:数学が好きな高校生。僕のクラスメート。長い黒髪の《饒舌才媛》。
リサ:自在にプログラミングを行う無口な女子。赤い髪の《コンピュータ少女》。
ミルカ「今日は何を?」
ユーリ「マイナス $2$ 進数です、ミルカさま」
ミルカ「ふうん……楽しそうだな」
リサ「$-2$ 進数?」
僕「いま、 $-2$ 進数と $10$ 進数の対応表を作ろうとしていたんだ」
リサ「手で?」
僕「『手で?』ってどういう意味?」
ミルカ「リサは、プログラムでできると言いたいんだよ」
僕「ああ、そうか。リサちゃんならコンピュータでできるんだ!」
リサ「《ちゃん》は不要」
僕「リサはプログラム得意だからなあ」
リサ「どこまで?」
ミルカ「切りの良いところまで」
リサ「それなら、 $256$ まで」
リサは軽く咳をしてから、コンピュータのキーボードを叩く。 ほどなくして一覧表を作り出した。
$-2$ 進数と $10$ 進数の対応表
ユーリ「ふへー……リサさんってすごいんですね」
リサ「《さん》も不要」
ユーリ「お兄ちゃん、 $-2$ 進数のパターンが見えるよ。縦読み縦読み!」
僕「うん。 $(-2)^0$ の位、つまり $1$ の位は縦読みで $0,1,0,1,0,1\ldots$ というパターン」
ユーリ「$(-2)^1$ の位は、 $1,1,0,0,1,1,0,0,\ldots$ だね! $1,1$ と $0,0$ がかわりばんこ」
僕「それから $(-2)^2$ の位、つまり $4$ の位は $1,1,1,1$ と $0,0,0,0$ が交互に来る」
ユーリ「下から四桁目の $(-2)^3$ の位は、 $1$ が $8$ 個と、 $0$ が $8$ 個がかわりばんこ」
僕「$(-2)^4$ の位は、 $1$ が $16$ 個と、 $0$ が $16$ 個……もう一般化できるなあ」
《$-2$ 進数のパターン》
$(-2)^k$ の位を縦読みすると、 《$1$ が $2^k$ 個》と《$0$ が $2^k$ 個》が交互に現れる。
ただし、 $k = 0,1,2,\ldots$ とする。
ミルカ「桁の増加にもパターンが見える」
ユーリ「そーそー! ユーリ気付いてたよ! 桁が増えるときって、 必ず $2$ 桁ずつ増えるの。しかも、増える数字は必ず $11$ で。 そしてしばらく進むと、そこんとこが $10$ に変わる」
$$ \begin{array}{rrl} 0 & 0 & \\ 1 & 1 & \\ 110 & 2 & \REMTEXT{$11$が増えた} \\ 111 & 3 & \\ 100 & 4 & \REMTEXT{$10$に変わった} \\ 101 & 5 & \\ 11010 & 6 & \REMTEXT{$11$が増えた} \\ 11011 & 7 & \\ 11000 & 8 & \\ 11001 & 9 & \\ 11110 & 10 & \\ 11111 & 11 & \\ 11100 & 12 & \\ 11101 & 13 & \\ 10010 & 14 & \REMTEXT{$10$に変わった} \\ 10011 & 15 & \\ 10000 & 16 & \\ 10001 & 17 & \\ 10110 & 18 & \\ 10111 & 19 & \\ 10100 & 20 & \\ 10101 & 21 & \\ \vdots & \vdots & \\ \end{array} $$僕「縦読みしたときに交互になるという意味では、 $2$ 進数のパターンと少し似ているところもあるけど、 $2$ 進数と $-2$ 進数ではまったく違うなあ」
ミルカ「まったく違うだろうか?」
僕「え?」
ミルカ「たとえば $0$ や $1$ を考えると、 $2$ 進法で表記しても $-2$ 進法で表記しても同じだ」
僕「そりゃそうだけど」
ユーリ「$4$ も! 両方 $100$ になる!」
ミルカ「では問題」
問題1
$n$ は $0$ 以上の整数とする。
$n$ を $2$ 進法で表記した場合と、 $-2$ 進法で表記した場合に、 同じ表記になるのはどんなときか。 $n$ についての条件を求めよ。
僕「……」
ユーリ「……」
僕「そうか……もしかすると、 $4$ の冪乗?」
リサ「できた」
ミルカ「プログラムで表を作っても、条件を求めたとはいえない」
リサ「なぜ」
ミルカ「たとえば、 『$n = 341$ のとき、 $2$ 進法と $-2$ 進法で表記が同じになるか?』 という問いに答えられないから」
リサ「表を $341$ までに」
ミルカ「ならば $n = 1501199875790165$ のときは? 切りがない」
僕「表を作り直さなくても、 $341$ や、その……すごく大きな数の表記を調べるだけでいいよね」
ミルカ「プログラムで確かめられたとしても、条件を求めるのは別の話」
僕「ところで、条件は見つかったよ。 《$n$ が $4$ の冪乗の和で表されること》が求める条件だ」
ミルカ「正解」
ユーリ「$4$ のべきじょうの……わ?」
僕「$4^0, 4^1, 4^2, 4^3, \ldots$ つまり $4^k$ の形で表される数を 何個か選ぶんだよ。そしてそれらを足し合わせる。 たとえば、 $4^0$ と $4^2$ を選んだとする。 そうすると、 $4^0 + 4^2 = 1 + 16 = 17$ だよね。 リサが作ってくれた表を見ると、確かに $17$ は同じ表記になっている」
リサ「$17$ 確認完了 $10001$」
ユーリ「でも、なんで? どっから $4$ が出てきたの?」
僕「$4 = (-2)^2$ だよ。ほら、 $-2$ 進数を一般的に書いた式があるよね。 あれでわかった」
ユーリ「へー」
僕「$2$ 進数と $-2$ 進数を一般的に書いてみるとこうなる」
$2$ 進数
$$ a_{n-1}2^{n-1} + \cdots + a_32^3 + a_22^2 + a_12^1 + a_02^0 $$
$-2$ 進数
$$ a_{n-1}(-2)^{n-1} + \cdots + a_3(-2)^3 + a_2(-2)^2 + a_1(-2)^1 + a_0(-2)^0 $$
ユーリ「ぜんぜん違うじゃん」
僕「いやいや、 $k$ が偶数のとき、 $(-2)^k$ は、 $2^k$ に等しいよね。 だから、並べて書いてみると……」
$$ \begin{array}{cccccccccccccc} \REMTEXT{$2$進数} & \cdots &+& a_32^3 &+& a_22^2 &+& a_12^1 &+& a_02^0 \\ \REMTEXT{$-2$進数} & \cdots &+& a_3(-2)^3 &+& a_22^2 &+& a_1(-2)^1 &+& a_02^0 \\ \end{array} $$
ユーリ「そっか! $2$ の偶数乗っていうのは、 $4$ の冪乗?」
僕「そうそう。 $4$ の冪乗をいくつか集めて作った和というのは、 《$2^{\REMTEXT{偶数}}$の位》にしか$1$がない数になる。 そしてそういう数は $2$ 進法と $-2$ 進法で等しくなるんだね」
ミルカ「正解」
解答1
$n$ は $0$ 以上の整数とする。
$n$ を $2$ 進法で表記した場合と、 $-2$ 進法で表記した場合に、 同じ表記になる条件は、 $n$ が $4$ の冪乗の和で表されることである。
リサ「条件……」(咳)
ユーリ「$-2$ 進数の表を作るプログラムって、どんなの……どんなものですか、 リサさん?」
リサ「《さん》は不要」
リサはコンピュータのディスプレイを向ける。
無料で「試し読み」できるのはここまでです。 この続きをお読みになるには「読み放題プラン」へのご参加が必要です。
ひと月500円で「読み放題プラン」へご参加いただきますと、 440本すべての記事が読み放題になりますので、 ぜひ、ご参加ください。
参加済みの方/すぐに参加したい方はこちら
結城浩のメンバーシップで参加 結城浩のpixivFANBOXで参加(2015年1月16日)
この記事は『数学ガールの秘密ノート/ビットとバイナリー』として書籍化されています。
書籍化にあたっては、加筆修正をたくさん行い、 練習問題や研究問題も追加しました。
どの巻からでも読み始められますので、 ぜひどうぞ!