上皿天秤と三進数

§0 はじめに.

 私が小学校の五年生か六年生の頃でした.(今からウン?十年前.)

 実験で上皿天秤を使うことになったのですが,付属の分銅が4っつしかありませんでした.

 使い方が良くわからなくて一円玉を使って,試料の粉薬を測ったことを覚えています.一円玉の重さはこの

頃から今日に至るまで(実用的精度の範囲内で)ちょうど一グラムだからです.

 今になって考えますと,このときの分銅の組み合わせは「4個組み」と呼ばれるもので 1g,3g,9g,

27gで成り立っていたはずです.これらはまた,1 = 30, 3 = 31, 9 = 32, 27 = 33のように全てが

 3 のべき(冪)で表せます.そして,この4個だけで 1gから40gまでを 1g刻みで測れるのです.

 本章ではこのことを説明してみたいと思います.

§1 原始3進化10進数.

 (1) 任意の10進数をq0とする.

  (2) q0 を 3 で割った商をq1,剰余を r0 とする.r0 は {0, 1, 2} のいずれかとなる.

    そうすると,

   q0 = q1*3 + r0                                                                (1)
 
    となる.   

  (3) q1 が 3 以上であれば,(2)と同様の操作を繰り返し商qと剰余rの添え字をそれぞれ 1 づつ進める.

      例えば,q1 >= 3 であれば,

   q1 = q2*3 + r1                                                                 (2)

    となり,さらに,

   q0 = q2*32 + r1*3 + r0                                                            (3)  

 (4) 商qの最後の添え字の自然数を n-1 とする.

      このとき最後の商は qn-1 と書かれ,qn-1 は {1, 2} のいずれかとなる.

   そうすると,

   q0 = qn-1*3n-1 + rn-2*3n-2 + rn-3*3n-3 +  … + r2*32 + r1*3 + r0               (4)

    と表される.

  (5) このとき,

   q0 = ( qn-1, rn-2, rn-3, … , r2, r1, r0)3

  と書いて,ここではこれを n 桁の原始3進化10進数と呼んでおくことにする.

 (6) 例題.

 (問1)35 を原始3進化10進数で表せ.

 (答)筆算で求めるには次のようにすれば良い.

      与えられた10進数 q0  →   35 ( 2 → 35 を 3 で割った剰余 r0
                   -----   
     35 を 3 で割った商 q1 →  11 ( 2 → 11 を 3 で割った剰余 r1
                                    -----
         11 を 3 で割った商 q2 →   3 ( 0  →   3 を 3 で割った剰余 r2                     
                                    -----
          3 を 3 で割った商 q3  →   1
                                 
  ここから,

    35 = ( q3, r2, r1, r0 )3 = ( 1, 0, 2, 2 )3

となる.実際,

 ( q3, r2, r1, r0 )3 = ( 1, 0, 2, 2 )3 = 1*33 + 0*32 + 2*3 + 2 = 27 + 0 + 6 + 2 = 35 となり,

正しく計算されていることが分る.

  (問2) 原始3進化10進数 ( 1, 2, 0, 1 )3 を10進数になおせ.

 (答) ( 1, 2, 0, 1 )3 = 1*33 + 2*32 + 0*3 + 1 = 27 + 18 + 0 + 1 = 46

  実際,

       与えられた10進数 q0  →   46 ( 1 → 46 を 3 で割った剰余 r0
                     -----   
       46 を 3 で割った商 q1 →  15 ( 0 → 15 を 3 で割った剰余 r1
                                      -----
           15 を 3 で割った商 q2 →   5 ( 2  →   5 を 3 で割った剰余 r2                     
                                      -----
            5 を 3 で割った商 q3  →   1
                                 
  ここから逆に,

    46 = ( q3, r2, r1, r0 )3 = ( 1, 2, 0, 1 )3

で良いことが示される.     

§2 標準3進化10進数.

 一般に,

 2*3n = (3-1)*3n = 1*3n+1 + (-1)*3n                                                                (5)

で表すこともできる.それでこの事実を原理として,

 (1) 原始3進化10進数の表現で下位から順に調べて 2 が立てられている最小の位が n 桁目であるとする.

 (2) n桁目を -1 とし n+1桁目に 1 を加える. 

 (3-1) n+1桁目の加算結果が 3 となれば,n+1桁目は 0 とし,n+2桁目に 1 を加える.    

 (3-2) n+1桁目の加算結果が 2 となれば,(1)からと同様な処理を行なう.
 
 (4) この処理をすべての桁で 2 が使われなくなるまで下位から順に繰り返す.

 (5) このとき得られた表現が m 桁であれば,

  Q0 = [ Qm-1, Rm-2, Rm-3, … , R2, R1, R0 ]3

で表して,ここではこれを m 桁の標準3進化10進数と呼んでおくことにする.

 ここで,Qm-1, Rm-2, Rm-3,  … , R2, R1, R0 は {-1, 0, 1} のいずれかの値を取る.

  (6) 例題.

 (問3)35 を標準3進化10進数で表せ.

 これを筆算でやれば 

     与えられた10進数Q0 →        35 ( 2  →  35 を 3 で割った原始剰余, 標準剰余R0 = -1
                                 -----
  35 を 3 で割った原始商          11       
                  標準商Q1  →  11+1 = 12 ( 0  →  12 を 3 で割った標準剰余R1
                             -----
  12 を 3 で割った標準商Q2  →          4 ( 1  →   4 を 3 で割った標準剰余R2
                           -----
   4 を 3 で割った標準商Q3  →         1   

  ∴ 35 = [ Q3, R2, R1, R0 ]3 = [ 1, 1, 0, -1 ]3

 実際,逆に,

 [ 1, 1, 0, -1 ]3 = 1*33 + 1*32 + 0*3 + (-1) = 27 + 9 + 0 - 1 = 35

となっていて正しいことが確かめられる.

 (問4)46 を標準3進化10進数で表せ.

     与えられた10進数Q0 →          46 ( 1 → 46 を 3 で割った標準剰余R0
                                     -----
  46 を 3 で割った標準商Q1  →          15 ( 0 → 15 を 3 で割った標準剰余R1
                               -----
  15 を 3 で割った標準商Q2  →            5 ( 2 →  5 を 3 で割った原始剰余,標準剰余R2 = -1
                                       -----
   5 を 3 で割った原始商   →           1   
  下位の標準化による加算    →    1+1 =   2 (-1 → 最高位の標準化によって生じた標準剰余R3 
                           -----  
  最高位の標準化によって生じた標準商Q4 → 1             
 
 ∴ 46 = [ Q4, R3, R2, R1, R0 ]3 = [ 1, -1, -1, 0, 1 ]3

 実際,逆に,

 [ 1, -1, -1, 0, 1 ]3 = 1*34 + (-1)*33 + (-1)*32 + 0*3 + 1 = 81 - 27 - 9 + 0 + 1 = 46

となって正しいことが確かめられる. 
  
 (問5)[ 1, 0, -1, -1 ]3 を10進数で表せ.

  [ 1, 0, -1, -1 ]3 = 1*33 + 0*32 + (-1)*3 + (-1) = 27 + 0 - 3 - 1 = 23

  実際,逆に,

       与えられた10進数Q0  →       23 ( 2 → 23 を 3 で割った原始剰余,標準剰余R0 = -1
                                       -----
    23 を 3 で割った原始商    →         7                       ------
                    標準商Q1  → 7 + 1 = 8 ( 2 →  8 を 3 で割った原始剰余,標準剰余R1 = -1
                               -----
    8 を 3 で割った原始商    →     2
                    標準商Q2  → 2 + 1 = 3 ( 0 →  3 を 3 で割った標準剰余R2
                                     -----
     3 を 3 で割った標準商Q3  →        1

 ゆえに,

   23 = [ Q3, R2, R1, R0 ]3 = [ 1, 0, -1, -1 ]3

となって,正いことが確かめられる.

 (問6)( 2, 1, 0, 2 )3 を標準3進化10進数で表せ.

 (答) ( 2, 1, 0, 2 )3 = ( 2, 1, 1, -1 )3 = ( 1, -1, 1, 1, -1 )3

                         = [ 1, -1, 1, 1, -1 ]3

  実際,

 ( 2, 1, 0, 2 )3 = 2*33 + 1*32 + 0*3 + 2 = 54 + 9 + 0 + 2 = 65

  [ 1, -1, 1, 1, -1 ]3 = 1*34 + (-1)*33 + 1*32 + 1*3 + (-1) = 81 - 27 + 9 + 3 - 1 = 65

  ∴ ( 2, 1, 0, 2 )3 = [ 1, -1, 1, 1, -1 ]3 = 65

となって正しいことが確かめられる.

 (問7)[ 1, -1, 0 ,-1, 1 ]3 を 原始3進化10進数で表せ.

 (答)この計算は上位の桁から下位の桁へと行なう.-1 を持つ桁は 2 とし,直上位桁からは 1 を引く.

 同様の処理を下位の桁に移動しながら -1 を持つ桁が全て無くなるまで繰り返せば良い.

 [ 1, -1, 0 ,-1, 1 ]3 = [ 0, 2, 0, -1, 1 ]3 = [ 0, 1, 2, 2, 1 ]3

  = ( 1, 2, 2, 1 )3

 実際,

 [ 1, -1, 0, -1, 1 ]3 = 1*34 + (-1)*33 + 0*32 + (-1)*3 + 1 = 81 - 27 + 0 - 3 + 1 = 52

  ( 1, 2, 2, 1 )3 = 1*33 + 2*32 + 2*3 + 1 = 27 + 18 + 6 + 1 = 52

  ∴ [ 1, -1, 0 ,-1, 1 ]3 = ( 1, 2, 2, 1 )3 = 52

となって正しいことが確かめられる.

§3 標準3進化10進数の性質についての数学的証明.

[定理1]

 n 桁以内の標準3進数化10進数によって表示できる正の数の総数を Max(n) という記号で表せば,

 Max(n) = ( 3n - 1 )/2

である.

[証明]

 勝手な 0 でない n 桁以内の標準3進数化10進数を P として,

 P = [ Tn-1, Tn-2, Tn-3, …, T2, T1, T0 ]3

と表せば,Tn-1,…,T0は {-1,0,1} で表され, 少なくとも1つは 0 でない.

 ここで P' として,

 P' = [ -Tn-1, -Tn-2, -Tn-3, …, -T2, -T1, -T0 ]3

を考えると P' も n 桁以内の標準3進化10進数であり,

  P + P' = [ Tn-1-Tn-1, Tn-2-Tn-2, Tn-3-Tn-3, …, T2-T2, T1-T1, T0-T0 ]3

         = [ 0, 0, 0, …, 0, 0, 0 ]3 = 0

となるから,

  P' = - P

である.

 (1) このことから,n 桁以内の標準3進数化10進数は正の数と負の数の表示を同個数づつ持つ.

  一方,

  (2) n 桁の標準3進化10進数は各桁が {-1,0,1} の3通りで表せるので合計で,3n 通りの表示を持つ.

  (3) 全ての桁が 0 である場合も組み合わせの一組と考えられる.

よって (1), (2), (3) から n 桁以内の標準3進数化10進数によって表示できる正の数の総数 Max(n) は

 Max(n) = ( 3n - 1 )/2 

である.

 証明終り.

[定理2]

 Max(n+1) = Max(n)*3 + 1

[証明]

 Max(n)*3 + 1 = ( 3n - 1 )/2 *3 + 1 = ( 3n+1 - 3 + 2 )/2 = ( 3n+1 - 1 )/2

               = Max(n+1)

 証明終り.

 この応用として例えば, Max(3)=(33-1)/2=(27-1)/2=13なので, 

  Max(4)=13*3+1=40, Max(5)=40*3+1=121, Max(6)=121*3+1=364, Max(7)=364*3+1=1093 … となる.

[定理3]

 n 桁以内の正の標準3進化10進数は 1 から Max(n)までの自然数とちょうど 1 対 1 に対応する.

[証明]

  (1) n = 1 の場合.

   1 桁の正の標準3進化10進数は,

  [ 1 ]3

ただ一つで,しかも,

 Max(1) = (3-1)/2 = 1

 ゆえに定理は n = 1 で真である.

 (2) n = k の場合に定理がすでに真であると仮定する.

 すなわち,

 1 から Max(k) までの自然数は k 桁以内の正の標準3進化10進数と 1 対 1 に対応している,

と仮定する.

  (3) ここで n = k+1 となったとする,

 新たに加わった数は k+1 桁目の正の数で,3k である.

 すると k+1 桁以内の正の標準3進化10進数によって次の連続した自然数が表示される.

     1                                               =   1
      2                                               =   2
      3                                               =   3
      ・                                     ・
    ・                                   ・
      ・                                   ・
  Max(k) - 2                                = Max(k)-2
  Max(k) - 1                                          = Max(k)-1
  Max                                                 = Max(k)
  Max(k) + 1 = (3k-1)/2 + 1  = 3k - (3k-1)/2           = 3k - Max(k)
  Max(k) + 2                                          = 3k - Max(k) + 1
  Max(k) + 3                                          = 3k - Max(k) + 2       
     ・                                    ・
   ・                                                   ・
     ・                                      ・
  Max(k) + Max(k) - 2     = (3k-1)/2 + (3k-1)/2 - 2   = 3k - 3
  Max(k) + Max(k) - 1     = (3k-1)/2 + (3k-1)/2 - 1   = 3k - 2
  Max(k) + Max(k)         = (3k-1)/2 + (3k-1)/2       = 3k - 1
  Max(k) + Max(k) + 1     = (3k-1)/2 + (3k-1)/2 + 1   = 3k                    
  Max(k) + Max(k) + 1 + 1                             = 3k + 1
  Max(k) + Max(k) + 1 + 2                             = 3k + 2
  Max(k) + Max(k) + 1 + 3                             = 3k + 3
     ・                                                   ・
     ・                                                   ・
     ・                                                   ・
  Max(k) + Max(k) + 1 + Max(x) - 2 = Max(k)*3 - 1     = 3k + Max(k) - 2 = Max(k+1) - 2
  Max(k) + Max(k) + 1 + Max(x) - 1 = Max(k)*3         = 3k + Max(k) - 1 = Max(k+1) - 1
  Max(k) + Max(k) + 1 + Max(x)     = Max(k)*3 + 1     = 3k + Max(k)     = Max(k+1) 

 この表示を "k+1 の場合の表示"と呼ぼう.

  さらに定理1から,

  Max(k+1) = (3k+1 - 1)/2

となるから,k+1 桁以内の正の標準3進化10進数は丁度"k+1 の場合の表示"で示されただけある.

 ゆえに n = k で真ならば,n = k + 1 でも真となる.

 よって (1), (2), (3)から帰納法により,定理は全ての自然数 n について真である.

 証明終り.

  この証明の特に(3)が分り難いという読者のために少し補足しておく.

  Max(k)=(3k-1)/2, Max(k+1)=(3k+1-1)/2 として,

  [1] 1 から Max(k) までの 1 刻みの増加は k+1桁以内の正の標準3進化10進数である.( Max(k) 通り )

  [2] {3k-Max(k)} から 3k までの 1 刻みの増加は k+1桁以内の正の標準3進化10進数である.( Max(k)+1 通り )

  [3] (3k+1) から {3k+Max(k)} までの 1 刻みの増加は k+1桁以内の正の標準3進化10進数である.( Max(k) 通り )

  このうち[1]の最後の数は 

    Max(k) = (3k-1)/2 

  [2]の始めの数は 

   3k-Max(k)=3k-(3k-1)/2 = (3k+1)/2 = (3k-1)/2 + 1 = Max(k) + 1

 ゆえに[1]と[2]は自然数上で連続である.

 また[2]と[3]が自然数上で連続であることはほぼ自明.

 [3]の最後の数は,

 3k + Max(k) = 3k + (3k-1)/2 = (3k+1-1)/2 = Max(k+1)  ( = Max(k)*3 + 1 通り )

  よって,[1],[2],[3]は 1 から Max(k+1) までの連続した自然数を表し,しかも定理1から k+1桁以内の全

ての正の標準3進化10進数とちょうど 1 対 1 に対応している.

 証明が分かり難いかも知れないが,正の標準3進化10進数の表示の構造そのものを反映していると考えて

あえてこの方法を採用した.

[定理4]

 丁度 n 桁の正の標準3進化10進数の表示の最上位は丁度 3n-1 回連続して 1 となる.

[証明]

  n 桁以内の正の標準3進化10進数の表示のうち, 3n-1 の桁が 1 であるのは Max(n) - Max(n-1)組だけ

存在する.( 定理3の証明参照)これを計算すると,

 Max(n) - Max(n-1) = (3n-1)/2 - (3n-1-1)/2 = (3n-3n-1)/2 = (3-1)3n-1/2 = 3n-1

 証明終り.

§4 標準3進化10進数の応用と上皿天秤による1g刻みの重量測定.

 さて前章までのことを踏まえて,上皿天秤のお話に移ろう.

 今,上皿天秤に付属の分銅が n 個組みであるとは,分銅がそれぞれ 1g, 3g, 32g, …, 3n-1gで与えられ

ている場合であるとする.しかるに,上皿天秤の右の皿に分銅を乗せる場合を + と考え,左の皿に乗せる場合

を - と考えれば,これら n 個の分銅は n 桁の標準3進化10進数を表すと考えられ,定理1からこれらは,

 1gから Max(n)=(3n-1)/2gまでを 1g 刻みで測らせると考えられる.

(問8)4個組みの上皿天秤で 33g を測れ.

              33 ( 0
              -----
               11 ( 2 → -1
              -----
                3 → 4 ( 1
                    ----
                  1

  ∴ 33 = [ 1, 1, -1, 0 ]3   ( 33 = 27 + 9 - 3 )

 これから右の皿には 27gと 9gを左の皿には 3gを乗せ,試料を左の皿に乗せて天秤を平行させれば良い.

 最後に4個組みの場合の 1gから 40gまでの分銅の乗せ方を表にして本章を終わる.

  10進数   原始3進化10進数       標準3進化10進数       左の皿     右の皿.

      1     ( 0, 0, 0, 1 )3     [ 0,  0,  0,  1 ]3          0         1
      2     ( 0, 0, 0, 2 )3     [ 0,  0,  1, -1 ]3          1          3
      3     ( 0, 0, 1, 0 )3     [ 0,  0,  1,  0 ]3          0         3
      4     ( 0, 0, 1, 1 )3     [ 0,  0,  1,  1 ]3          0          3+1
      5     ( 0, 0, 1, 2 )3     [ 0,  1, -1, -1 ]3        3+1        9

      6     ( 0, 0, 2, 0 )3     [ 0,  1, -1,  0 ]3        3          9
      7     ( 0, 0, 2, 1 )3     [ 0,  1, -1,  1 ]3        3          9  +1
      8     ( 0, 0, 2, 2 )3     [ 0,  1,  0, -1 ]3          1        9
      9     ( 0, 1, 0, 0 )3     [ 0,  1,  0,  0 ]3          0        9
     10     ( 0, 1, 0, 1 )3     [ 0,  1,  0,  1 ]3          0        9  +1

     11     ( 0, 1, 0, 2 )3     [ 0,  1,  1, -1 ]3          1        9+3
     12     ( 0, 1, 1, 0 )3     [ 0,  1,  1,  0 ]3          0        9+3
     13     ( 0, 1, 1, 1 )3     [ 0,  1,  1,  1 ]3          0        9+3+1
     14     ( 0, 1, 1, 2 )3     [ 1, -1, -1, -1 ]3      9+3+1     27
     15     ( 0, 1, 2, 0 )3     [ 1, -1, -1,  0 ]3      9+3       27

     16     ( 0, 1, 2, 1 )3     [ 1, -1, -1,  1 ]3      9+3       27    +1
     17     ( 0, 1, 2, 2 )3     [ 1, -1,  0, -1 ]3      9  +1     27
     18     ( 0, 2, 0, 0 )3     [ 1, -1,  0,  0 ]3      9         27
     19     ( 0, 2, 0, 1 )3     [ 1, -1,  0,  1 ]3      9         27    +1
     20     ( 0, 2, 0, 2 )3     [ 1, -1,  1, -1 ]3      9  +1     27  +3

     21     ( 0, 2, 1, 0 )3     [ 1, -1,  1,  0 ]3      9         27  +3
     22     ( 0, 2, 1, 1 )3     [ 1, -1,  1,  1 ]3      9         27  +3+1
     23     ( 0, 2, 1, 2 )3     [ 1,  0, -1, -1 ]3        3+1     27
     24     ( 0, 2, 2, 0 )3     [ 1,  0, -1,  0 ]3        3       27
     25     ( 0, 2, 2, 1 )3     [ 1,  0, -1,  1 ]3        3       27    +1

     26     ( 0, 2, 2, 2 )3     [ 1,  0,  0, -1 ]3          1     27
     27     ( 1, 0, 0, 0 )3     [ 1,  0,  0,  0 ]3          0     27
     28     ( 1, 0, 0, 1 )3     [ 1,  0,  0,  1 ]3          0     27    +1
     29     ( 1, 0, 0, 2 )3     [ 1,  0,  1, -1 ]3          1     27  +3
     30     ( 1, 0, 1, 0 )3     [ 1,  0,  1,  0 ]3          0     27  +3

     31     ( 1, 0, 1, 1 )3     [ 1,  0,  1,  1 ]3          0     27  +3+1
     32     ( 1, 0, 1, 2 )3     [ 1,  1, -1, -1 ]3        3+1     27+9
     33     ( 1, 0, 2, 0 )3     [ 1,  1, -1,  0 ]3        3       27+9
     34     ( 1, 0, 2, 1 )3     [ 1,  1, -1,  1 ]3        3       27+9  +1
     35     ( 1, 0, 2, 2 )3     [ 1,  1,  0, -1 ]3          1     27+9

     36     ( 1, 1, 0, 0 )3     [ 1,  1,  0,  0 ]3          0     27+9
     37     ( 1, 1, 0, 1 )3     [ 1,  1,  0,  1 ]3          0     27+9  +1
     38     ( 1, 1, 0, 2 )3     [ 1,  1,  1, -1 ]3          1     27+9+3
     39     ( 1, 1, 1, 0 )3     [ 1,  1,  1,  0 ]3          0     27+9+3
     40     ( 1, 1, 1, 1 )3     [ 1,  1,  1,  1 ]3          0     27+9+3+1

inserted by FC2 system