「マイナス2進法で数を数えなさい」

「ビルゲイツの入社試験」の問題の一つです。
P-進数を調べていたとき,何か関連があるのではないかと考えてみることにしました。

n進数a
0a1…ar-1ar[n]は,10進法に直すと,
Q=a
r+ar-1・n+ar-2・n2+ar-3・n3+…+a0・nrです。
マイナス2進法―すなわちn=-2のとき,Qは10進法ではどんな値をとるか。

-2進法なので,使う数字a
は0か1とします(TかSを使っても良いのですが)。ここで注意することは,(‐2)の奇数乗はマイナスになることです。きっと,めちゃくちゃな数が出てくるだろうと予想したのですが,どうでしょうか。

例えば,Q=a
r−2・ar-1+4・ar-2−8・ar-3+16・ar-4−…ですから,
11
[-2]はQ=1-2=-1。111[-2]はQ=1-2+(-2)2=3。以下同様に計算すると,

-2進法 1 10  11  100  101  110  111  1000
10進法 1 -2  -1  4   5   2   3   -8

重複なく出てきます。さらにマイナスも出てきます。つまり,マイナス2進数を考えるとマイナス記号を使わなくても負の数を取り扱えるということです。
この続きもやってみましょう。

-2進法 1001 1010  1011  1100  1101   1110   1111
10進法  -7  -10   -9   -4   -3    -6    -5

-2進法 10000  10001  10010  10011  10100   10101   10110   10111
10進法  16    17    14    15   20    21    18    19

これは,四則計算もできるのでしょうか。

 -2+5=10+101=111
[-2]=3     3-(-3)=111-1101=-110
 -3*(-2)=1101*10=11010
[-2]=6  14/(-2)=10010/10=1001[-2]=-7
 
成り立っているのもありますが,2進法の加法のやり方では,2+(-2)=110+10=1000
[-2]=-8
のように成り立たない場合もあります。この数はマイナスも含んでいるので,加法さえ成り立つようにすれば減法も考えることができるはずです。2進法のように単純に繰り上げると符号が違ってくるので,繰り上がりと0になるところを注意すればいいことに気がつきます。そして,次のルール見つかります。

《−2進法の加法のルール》
(@)11+01=0(繰り上がってマイナスと打ち消しあって0。(−1)+1=0)
(A)01+01=110(符号が同じ二つ上の位に繰り上がるが,多すぎるので一つ上の位で消す。)
ルールはこの2つでOKです。
この法則は桁が違っても同じですが,2桁ずつまとめて計算した方がわかりやすい。

   -2  10    1  01    -1  11    -2  10    -1  11
  +)-2 +)10   +)1 +)01   +)+1 +)01   +)1 +)01   +)-2 +)10
   -4 1100    2 0110     0  00    -1  11    -3 1101

この法則を使えば,次のように計算できます。2桁ずつまとめることを忘れないように。

   -1   
11      -2  0110       6  011010
  +)-1  +)1
1      +2 +)0010     +)-3 +) 1101
   -2  
 10       0   00       3   0111
          
この加法を使うと,マイナスの符号を使わなくても計算ができることになります。この点は「無限大数」と同じです。これで加法も成り立たせることができたので,最初の入社試験を解くことにします。
 
これを順番に並べると,
10進法  -3  -2  -1 0 1  2  3   4   5   6   7   8    9    10
-2進法 1101  10  11 0 1 110 111  100  101 11010 11011 11000  11001  11110

2桁の数はマイナス。3桁の数はプラス。4桁はマイナス。5桁はプラスです。
  
マイナス2進法で(10進法の)数を数えるわけですから,
1101,10,11,0,1,110,111,100,101,11010,11011,11000,11001,11110,…が解答でしょうか。

さらに研究してみよう。
 (1)減法を考えてみよう。 ルールは?
 (2)乗法を考えてみよう。 (−)×(−)=(+)になるわけは? これは面白そうです。
 (3)除法を考えてみよう。 少数も調べてみよう。

さらに、「てんびん3進法」も考えられます。 もどる