Up 十進数の桁数 作成: 2014-05-30
更新: 2014-05-30


    ひとは,つぎの積の計算をどうやっているか:
        1000 × 100000
    これを
    で計算する者はいない。
    みな,つぎのように計算する:
    これは何をやっているかというと,つぎをやっている:
      「かけ算を,桁数の足し算に替える」
      (「桁数mの数と桁数nの数の積は,桁数 m+nの数」)


      「電卓」が登場する以前の昔,即ち 1970年代前半までは,高校物理や化学でのかけ算計算は,「計算尺」というものを使っていた。
      学生は計算尺を買わされ,授業でこれの操作が教えられた。
      この計算尺は,「かけ算を,桁数の足し算に替える」を道具にしたものである。


    ここで注意だが,日常語のいう「桁数」だと,1000, 100000 はそれぞれ4桁と6桁になるが,数学だと 10‥‥0 の桁数は0の個数のことにして,1000, 100000 はそれぞれ3桁と5桁になる。

    さて,「かけ算を,桁数の足し算に替える」は,どのくらいありがたいことか?
    例えば,2の10乗の大きさなんかは,サッとわかってしまう。
    後述するが,「桁数mの数と桁数nの数の積は,桁数 m+nの数」が成り立つように2の桁数を求めると,それはおよそ 0.3 である。
    そこで,2の10乗は,桁数 0.3 の数の 10 回の積。
    「桁数mの数と桁数nの数の積は,桁数 m+nの数」より,これの桁数は 0.3 × 10,すなわち 3 である。
    こうして,2の10乗は,1の後に0を3個並べた数,つまり 1000 である。
    実際に 2の10乗を計算すると 1024 になり,まあまあよい近似値である。
    2の10乗を実際に計算するくらいどうってことない」と思う向きは,2の100乗を考えてみたらよい。

    というわけで,ここでは1から9までの桁数を求めてみる。
    そして最後に,これの応用問題をやってみることにする。

    なお,9までの数の桁数を求める以下の話は,わたしが大昔に読んだ森毅のテクストから拝借するものである。 (そのテクストが何だったかは,覚えていない。 『数学セミナー』? )


    以下,桁数を求めるときに用いる規則は,「mとnの積の桁数は,mの桁数とnの桁数の和」である。

    • 2の桁数
        「2の10乗=1024,およそ1000」を用いる。
        この等式より,2の桁数を10回足したのが,1000の桁数,すなわち3。
        よって,2の桁数は 0.3。

    • 4, 8の桁数
        4は,2の2乗。よって,桁数は2の桁数の2倍,すなわち 0.6。
        8は,2の3乗。よって,桁数は2の桁数の3倍,すなわち 0.9。

    • 3の桁数
        「3の4乗=81,およそ80」を用いる。
        この等式より,3の桁数の4倍が,80 の桁数。
        80 の桁数は,80 = 8 × 10 より,8の桁数 0.9 と10 の桁数1の和,即ち 1.9。
        よって,3の桁数は,1.9 ÷ 4,小数第3位の四捨五入で,0.48。

    • 9の桁数
        「9=3の2乗」を用いてもよいが,「9の2乗=81,およそ80」を用いる方が,誤差が小さい。
        そしてこの等式より,9の桁数の2倍が,80 の桁数 1.9。
        よって,9の桁数は,0.95。

    • 6の桁数
        「6=2×3」を用いる。
        この等式より,6の桁数は,2の桁数 0.3 と3の桁数 0.48 の和,即ち 0.78。

    • 5の桁数
        「5×2=10」を用いる。
        この等式より,5の桁数と2の桁数 0.3 を足したのが,10の桁数1。
        よって,5の桁数は 0.7。

    • 7の桁数
        「7の2乗=49,およそ50」を用いる。
        この等式より,7の桁数の2倍が,50 の桁数。
        50 の桁数は,50 = 5 × 10 より,5の桁数 0.7 と10 の桁数1の和,即ち 1.7。
        よって,7の桁数は,0.85。

    • 1の桁数
        任意の数nに対する「1×n=n」を用いる。
        この等式より,1の桁数とnの桁数を足したのは,nの桁数。
        よって,1の桁数は0。

    1から9までの数の桁数を求める話は,これでおしまい。

    ところで,ここで「数nの桁数」と言っているのは,厳密には「十進数に対する数nの桁数」である。
    この言い回しは長い。
    そこで,数学の短い記号表現となる。
    それが,「log10n」である。
    「2進数に対する数nの桁数」だと,「log2n」である。
    「mとnの積の桁数は,mの桁数とnの桁数の和」は,つぎの表現になる:
      log10 (m × n) = log10m + log10


      以上の話を大学で授業すると,たいていの学生は,「log」の導入のところで,「えっ」「なんだー」のリアクションになる。
      高校で「log」を教えられているが,意味を教えられていないわけである。
      「指数関数」)
      もっとも,数学の授業はだいたいがこうで,「log」に限ったことではない。


    応用問題 1
    十進数の二進数表示は,数字の列がひどく長くなる感じがする。
    どのくらい長くなるのかを,一般的に述べられないか?

      解答
      二進数表示で1の後ろに0がn個つく数を考える。
      これは,2のn乗である。
      そして,2のn乗の桁数は,2の桁数のn倍,すなわち 0.3 × n。
      十進数表示の数字列の長さは,二進数表示の数字列の長さの約 0.3 倍である。


    応用問題 2
    0.1 mm の紙を半分に折る。
    これで厚さが2倍になる。
    さらに半分に折る。──これを繰り返す。
    さて,何回折ったら,月まで届く厚さになるか?
    ここで,月までの距離は 38万5千km

      地球1周が4万km だから,月までは地球9周半と少し。意外と近い (?)

      解答
      つぎの不等式を解く:
        n回折ったときの厚さ ≦ 38万5千km < (n+1) 回折ったときの厚さ
      これは,つぎのようになる:
        0.1 mm の2 倍 ≦ 38万5千km < 0.1 mm の2n+1

      38万5千km が 0.1 mm の何倍かを求める:
        38万5千km = (385000 × 1000) m = (385000 × 1000 × 1000) mm
         = (3.85 × 1011) mm
      よって,38万5千km は,0.1 mm の 3.85 × 1011 × 10 倍

      そこで,つぎの不等式になる:
         ≦ 3.85 × 1012 < 2n+1

      ここで,「桁数」の出番となる。
      上の不等式を,桁数の不等式に替える:
        の桁数 ≦ 3.85 × 1012 の桁数 < 2n+1 の桁数

      3.85 × 1012 を 38.5 × 1011 に替え,38 を,桁数が計算できる 36 と 40 ではさむ:
        36 × 1011 の桁数 < 38.5 × 1011 の桁数 < 40 × 1011 の桁数

      このとき:
        の桁数 = 0.3 × n
        36 × 1011 の桁数 = (4 × 9)の桁数 + 11 = (0.6 + 0.95 ) + 11 = 12.55
          = 0.3 × 41.8
        40 × 1011 の桁数 = (4 × 10)の桁数 + 11 = (0.6 + 1 ) + 11 = 12.6
          = 0.3 × 42
        n+1 の桁数 = 0.3 × (n+1)

      よって,つぎのようになる:
        41 の桁数 < 36 × 1011 の桁数 < 38.5 × 1011 の桁数
        38.5 × 1011 の桁数 < 40 × 1011 の桁数 = 242 の桁数

      したがって,「41回ではまだ月に到達しないが,42回では月を超える」が答になる。