上皿天秤と三進数
§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