技術の信頼性で活躍する白石電機工業

Blog 詳細

  • 1÷9801=0.00 01 02 03…97 99——98はどこへ消えた?

    2026/02/20 雑記


    弊社には写真のような骨董品があります。もう20年くらい電源を入れていない PC-9801 です。

    9801——この数字を見て「PC-9801」を思い浮かべた方、きっと同世代ですね。かつて日本中のデスクに鎮座したあの名機と同じ数字が、数学の世界にもちょっと不思議な秘密を隠しています。

    さて、本題です。
    1 ÷ 9801 を計算してみてください(記事末尾に計算機を用意しています)。
    小数点以下に 00, 01, 02, 03 … と2桁の数が行儀よく順番に並んでいくのですが、なぜか 「98」だけが出てきません
    PC-9801は画面にあらゆる文字を映し出しましたが、1÷9801 は 00〜99 の「全キャラクター」のうち 98 だけを表示してくれないのです。

    この記事では、

    • なぜ 00〜99 が並ぶのか
    • なぜ 98 だけが消えるのか
    • 98 も含めた「完全版」の計算式をどうやって作るか

    を、中学・高校レベルの数学でわかるようにステップごとに解説します。
    「本当にそうなるの?」と思った方は、ぜひ記事末尾の計算機で自分の手で確かめてみてください。
    自分で確かめるところから、面白さは始まります。


    第1章 1÷9801 を計算してみる

    まず実際に計算してみましょう。ただし、普通の電卓やExcelでは有効桁数が足りません。
    この記事の末尾に任意精度計算機を用意してありますので、ぜひそちらで試してみてください。
    小数点以下200桁ほど計算すると、次のようになります。

    0.00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19
    20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
    40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
    60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
    80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 99
    00 01 02 … ← ここから繰り返し

    00, 01, 02, … と続いて 97 の次が 98 を飛ばして 99 になり、その後また 00 から繰り返します。

    特徴まとめ
    ・循環節(繰り返しの1セット)の長さ:198桁
    ・2桁グループは 99 個(00〜99 のうち 98 だけ欠ける
    ・分母 9801 = 99² という「二乗数」であることが鍵

    第2章 なぜ 00〜99 が並ぶのか?——無限級数で理解する
    2-1 等比数列の和の公式(復習)

    \(|r| < 1\) のとき、次の公式が成り立ちます(これは中学・高校で習う公式です)。

    等比数列の無限和
    \[
    1 + r + r^2 + r^3 + r^4 + \cdots = \frac{1}{1-r}
    \]

    たとえば \(r = \frac{1}{2}\) を代入すると、
    \(1 + \frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \cdots = \frac{1}{1 – \frac{1}{2}} = 2\)
    になります。

    2-2 両辺を微分する

    さらに一歩進みます。上の式の 両辺を \(r\) で微分 します。

    微分とは「少し変化させたとき、値がどれだけ変わるか」を調べる操作です。
    べき乗の微分ルール \(\frac{d}{dr}(r^n) = n \cdot r^{n-1}\) を使います。

    左辺を項ごとに微分
    \[
    \frac{d}{dr}\left(1 + r + r^2 + r^3 + r^4 + \cdots\right)
    = 0 + 1 + 2r + 3r^2 + 4r^3 + \cdots
    \]
    右辺を微分
    \(\frac{1}{1-r}\) を微分すると?

    \(\frac{1}{1-r} = (1-r)^{-1}\) と書き直し、合成関数の微分ルールを使います:
    \[
    \frac{d}{dr}(1-r)^{-1}
    = (-1)\cdot(1-r)^{-2}\cdot(-1)
    = \frac{1}{(1-r)^2}
    \]
    \((-1)\times(-1)=+1\) でプラスになるのがポイントです。

    微分後の式
    \[
    1 + 2r + 3r^2 + 4r^3 + 5r^4 + \cdots = \frac{1}{(1-r)^2}
    \]
    左辺の係数が 1, 2, 3, 4, … と順番に並ぶ式が得られました!
    右辺は分母が「二乗」になっています。
    2-3 r = 1/100 を代入する

    微分で得た式の両辺に \(r\) を掛けてみます。

    両辺に r を掛ける
    \[
    r + 2r^2 + 3r^3 + 4r^4 + \cdots = \frac{r}{(1-r)^2}
    \]
    左辺の係数が 1, 2, 3, 4, … のまま、各項の次数が 1 つずつ上がりました。

    ここに \(r = \frac{1}{100}\) を代入します。

    右辺の計算
    \[
    \frac{\frac{1}{100}}{\left(1 – \frac{1}{100}\right)^2}
    = \frac{\frac{1}{100}}{\left(\frac{99}{100}\right)^2}
    = \frac{100}{99^2}
    = \frac{100}{9801}
    \]

    左辺に代入した結果をよく見ると:

    左辺に代入
    \[
    \frac{1}{100} + \frac{2}{100^2} + \frac{3}{100^3} + \frac{4}{100^4} + \cdots = \frac{100}{9801}
    \]
    両辺を \(100\) で割ると:
    \[
    \frac{1}{100^2} + \frac{2}{100^3} + \frac{3}{100^4} + \cdots = \frac{1}{9801}
    \]

    先頭に値ゼロの項 \(\frac{0}{100^1}\) を加えれば、\(k = 0\) から始まるきれいな級数になります:

    1÷9801 の無限級数表現
    \[
    \frac{1}{9801}
    = \frac{0}{100^1} + \frac{1}{100^2} + \frac{2}{100^3} + \frac{3}{100^4} + \cdots
    = \sum_{k=0}^{\infty} \frac{k}{100^{k+1}}
    \]
    この式の意味
    第 \(k\) 番目の「2桁グループ」にちょうど数字 \(k\) が入ります。
    \(k=0 \to\) 00, \(k=1 \to\) 01, \(k=2 \to\) 02, …, \(k=99 \to\) 99
    これが「00〜99 が順番に並ぶ」理由です。
    補足 微分を使わない別の導き方

    実は、微分を使わなくても同じ結論にたどり着けます。
    \(\frac{1}{9801} = \frac{1}{99^2} = \left(\frac{1}{99}\right)^2\) と変形し、
    \(\frac{1}{99} = 0.{01} + 0.{0001} + 0.{000001} + \cdots\ = \frac{1}{100} + \frac{1}{100^2} + \frac{1}{100^3} + \cdots\)
    であることを利用します。

    \(x = \frac{1}{100}\) とおくと、\(\frac{1}{9801} = (x + x^2 + x^3 + \cdots)^2\) です。
    この二乗を展開すると、各 \(x^n\) の係数は「\(x^a \cdot x^b\) で \(a+b=n\) となる組み合わせの数」になります。
    たとえば \(x^4\) の係数は \((a,b) = (1,3),(2,2),(3,1)\) の 3 通りで、係数は 3。
    一般に \(x^{k+1}\) の係数はちょうど \(k\) になり、
    同じ級数 \(\sum \frac{k}{100^{k+1}}\) が得られます。

    微分を知らなくても、等比級数の二乗展開だけで導ける——中学数学の範囲で完結する、もうひとつのエレガントな方法です。

    第3章 なぜ 98 だけが消えるのか?——桁あふれの玉突き
    3-1 k = 100 で問題が起きる

    先ほどの級数は 無限に続きます
    \(k = 100\) の項を見てみましょう。

    k = 100 のとき
    値 = 100 ÷ 100101

    この項は小数点以下の「第101番目の2桁グループ」に 100 を置こうとします。
    しかし 2桁グループに入れられるのは 00〜99 だけ。
    → 桁あふれが発生!

    3-2 玉突きの連鎖

    桁あふれが起きると「繰り上がり +1」が前のグループへ伝わります。これが玉突きです。

    1
    k=100 のグループで桁あふれ
    値 100 → 00 を書いて、繰り上がり +1 を k=99 のグループへ送る。
    2
    k=99 のグループも連鎖
    本来は 99 のはず → 繰り上がりを受けて 99 + 1 = 100。またも桁あふれ。
    00 を書いて繰り上がりをさらに k=98 へ送る。
    3
    k=98 のグループで連鎖が止まる
    本来は 98 のはず → 繰り上がりを受けて 98 + 1 = 99
    2桁に収まるので連鎖ここで終了。
    結果の対比

    グループ 本来の値 実際の値 変化の理由
    k = 97 97 97 変化なし
    k = 98 98 99 繰り上がり +1 で上書き
    k = 99 99 00 99+1=100 → 桁あふれ
    k = 100〜 00, 01, 02… リセット
    98 が消える理由まとめ
    「98 が入るべきマス」が 99 に上書きされ、
    「99 のマス」は 00 に変わる
    98 はどこにも居場所がなくなって、消えてしまうのです。
    3-3 一般則:欠けるのは常に「末尾 8」の数

    同じ仕組みが、\((10^n – 1)^2\) 型の分母すべてに当てはまります。

    分母 分母 = ?² 欠けるグループ
    \(1 \div 81\) 81 \(9^2\) 8
    \(1 \div 9801\) 9801 \(99^2\) 98
    \(1 \div 998001\) 998001 \(999^2\) 998
    \(1 \div 99980001\) 99980001 \(9999^2\) 9998

    第4章 有限和——98 が消えない式を作る
    4-1 原因は「無限に続く項」にある

    桁あふれの原因は k = 100 以降の項が無限に続くこと でした。
    なら、k = 0〜99 の 100 項だけで打ち切った「有限和」 を計算すればよいはずです。

    有限和 S
    \[
    S = \sum_{k=0}^{99} \frac{k}{100^{k+1}}
    = \frac{0}{100} + \frac{1}{100^2} + \frac{2}{100^3} + \cdots + \frac{98}{100^{99}} + \frac{99}{100^{100}}
    \]
    k = 100 以降の項がないので、繰り上がりは起きません。
    4-2 有限和を1つの分数に整理する

    \(\Sigma\) の形のままでは使いにくいので、1 つの分数に整理します。
    次の有限和の公式を使います(高校数学の「数列」で学ぶ公式です)。

    有限等差×等比型の和の公式
    \[
    \sum_{k=0}^{N} k \cdot x^{k+1}
    = \frac{x^2 \left(1 – (N+1)x^N + N x^{N+1}\right)}{(1-x)^2}
    \]

    ここに \(x = \dfrac{1}{100},\; N = 99\) を代入して整理します。

    各部品を計算する
    \[
    (1-x)^2 = \left(\frac{99}{100}\right)^2 = \frac{9801}{10000}
    \]
    \[
    x^2 = \frac{1}{10000}
    \]
    \[
    1 – 100 \cdot \left(\frac{1}{100}\right)^{99} + 99 \cdot \left(\frac{1}{100}\right)^{100}
    = \frac{100^{100} – 100^2 + 99}{100^{100}}
    = \frac{100^{100} – 9901}{100^{100}}
    \]
    (ここで \(100^2 – 99 = 10000 – 99 = 9901\))
    全部まとめると
    \[
    S = \frac{\dfrac{1}{10000} \times \dfrac{100^{100}-9901}{100^{100}}}{\dfrac{9801}{10000}}
    = \frac{100^{100}-9901}{9801 \times 100^{100}}
    \]
    有限小数版の完全式
    \[
    \boxed{\frac{100^{100}-9901}{9801 \times 100^{100}}}
    \]
    この式を計算すると:
    \[
    0.\underbrace{00\ 01\ 02\ \cdots\ 97\ \mathbf{98}\ 99}_{\text{200桁でぴたり終わる(有限小数)}}
    \]
    98 も含めて全部そろいます!

    第5章 循環小数版——00〜99 が永遠に繰り返す式
    5-1 循環小数を分数に変換する方法(復習)

    中学数学で、循環小数を分数に直す方法を学びます。たとえば:

    \(x = 0.\overline{142857}\)(142857 が繰り返す)とすると

    両辺を \(10^6 = 1000000\) 倍:\(1000000x = 142857.\overline{142857}\)
    引き算:\(999999x = 142857\)
    \[
    x = \frac{142857}{999999} = \frac{1}{7}
    \]

    一般化すると:

    循環小数と分数の変換ルール
    \[
    0.\overline{\underbrace{XXXX\cdots}_{n\text{桁}}}
    = \frac{\text{XXXX の整数値}}{\underbrace{99\cdots9}_{n\text{個}}}
    = \frac{\text{XXXX の整数値}}{10^n – 1}
    \]
    5-2 有限小数を循環小数に変換する

    第4章で求めた有限小数は 200桁 のブロック
    \(\underbrace{000102\cdots9899}_{200\text{桁}}\)
    が繰り返す循環小数に変換できます。

    このブロックの整数値 \(A\) は:

    \[
    A = S \times 100^{100} = \frac{100^{100}-9901}{9801 \times 100^{100}} \times 100^{100}
    = \frac{100^{100}-9901}{9801}
    \]

    繰り返しブロックが 200桁なので、\(10^{200} – 1 = 100^{100} – 1\) で割ります:

    \[
    0.\overline{000102\cdots9899}
    = \frac{A}{100^{100}-1}
    = \frac{\dfrac{100^{100}-9901}{9801}}{100^{100}-1}
    = \frac{100^{100}-9901}{9801 \times (100^{100}-1)}
    \]
    無限循環版の完全式
    \[
    \boxed{\frac{100^{100}-9901}{9801 \times (100^{100}-1)}}
    \]
    この式の小数展開:
    \[
    0.\overline{\underbrace{00\ 01\ 02\ \cdots\ 97\ \mathbf{98}\ 99}_{200\text{桁}}}
    \]
    00 から 99 まで全部そろって、永遠に繰り返します。
    5-3 元の 1÷9801 との違いはどれくらい?
    \[
    \text{完全循環版} – \frac{1}{9801}
    = \frac{100^{100}-9901}{9801(100^{100}-1)} – \frac{1}{9801}
    = \frac{100}{99 \times (100^{100}-1)}
    \approx 10^{-197}
    \]
    小数点以下 197 桁目以降だけが違う、ごくわずかな差です。
    最初の 196 桁は 1÷9801 と完全に一致します。

    第6章 まとめ——3つの式の比較
    計算式 小数の性質 98 は?
    1÷9801(元の式) \(\dfrac{1}{9801}\) 循環節 198 桁で永遠に繰り返す 欠ける
    有限小数版 \(\dfrac{100^{100}-9901}{9801 \times 100^{100}}\) 200桁でぴたりと終わる有限小数 ある
    完全循環版 \(\dfrac{100^{100}-9901}{9801\times(100^{100}-1)}\) 循環節 200 桁で永遠に繰り返す ある
    式を作る4ステップ
    1
    等比数列の和の公式 \(\dfrac{1}{1-r}\) を 微分 して
    \(\dfrac{1}{(1-r)^2}\) を得る
    2
    \(r = \dfrac{1}{100}\) を代入して
    \(\dfrac{1}{9801} = \displaystyle\sum_{k=0}^{\infty} \dfrac{k}{100^{k+1}}\) を確認する
    3
    桁あふれを防ぐため k = 0〜99 の有限和 に打ち切り、
    公式で整理して \(\dfrac{100^{100}-9901}{9801 \times 100^{100}}\) を得る
    4
    「\(0.\overline{A} = A \div (10^n – 1)\)」の変換で
    分母の \(100^{100}\) を \(100^{100}-1\) に変えて循環小数に変換する
    もっと試してみよう——同じ仕組みの仲間たち

    この記事では 1÷9801 を掘り下げましたが、第3章で触れた通り、同じ考え方は
    \((10^n – 1)^2\) 型の分母すべてに当てはまります。

    分母 並ぶ数 欠ける数 循環節
    \(1 \div 81\) \(9^2 = 81\) 0, 1, 2, …, 9(1桁ずつ) 8 9桁
    \(1 \div 9801\) \(99^2 = 9801\) 00, 01, 02, …, 99(2桁ずつ) 98 198桁
    \(1 \div 998001\) \(999^2 = 998001\) 000, 001, 002, …, 999(3桁ずつ) 998 2997桁
    \(1 \div 99980001\) \(9999^2 = 99980001\) 0000, 0001, …, 9999(4桁ずつ) 9998 39996桁

    たとえば 1÷81 は小数点以下に 0, 1, 2, … 9 が1桁ずつ並びますが、8 だけが飛ばされます。
    1÷998001 なら 000〜999 が3桁ずつ並んで 998 だけが欠けます。
    桁数が変わっても「桁あふれの繰り上がりで末尾8の数が上書きされる」という仕組みは同じです。

    この記事の第2章〜第5章で使った導出——微分で級数を作り、有限和に打ち切り、循環小数に変換する——も
    そのまま一般化できます。
    ぜひ下の計算機
    1/811/998001 を入力して、自分の目で確かめてみてください。

    この話で使った数学
    ・等比数列の和(中学〜高校数学)
    ・べき乗の微分・合成関数の微分(高校数学Ⅱ・Ⅲ)
    ・有限数列の和の公式(高校数学B)
    ・循環小数を分数に変換(中学数学)

    身近な割り算のなかに、これだけの数学が隠れています。


    付録 実際に計算してみよう——任意精度計算機

    この記事で紹介した3つの式に加え、四則演算・べき乗・各種数学関数・円周率π なども
    小数点以下 最大1000桁 まで計算できます。

    プリセット:











    式:
    自動判定

    桁数:

    300桁

    使える関数・演算子の一覧を見る
    演算子

    + - * / 四則演算
    ^ または ** べき乗
    n! 階乗(例: 20!
    ( ) 括弧

    定数

    pi 円周率 π
    e ネイピア数
    phi 黄金比 φ
    tau τ = 2π

    基本関数

    sqrt(x) 平方根
    cbrt(x) 立方根
    abs(x) 絶対値
    floor(x) 切り捨て
    ceil(x) 切り上げ

    指数・対数

    exp(x) e^x
    ln(x) 自然対数
    log(x) 常用対数(底10)
    log2(x) 底2の対数

    三角関数(ラジアン)

    sin(x) cos(x) tan(x)
    asin(x) acos(x) atan(x)
    sinh(x) cosh(x) tanh(x)

    注意事項

    整数のみの式 → BigInt高速モード
    pi/sqrt/sin等 → decimal.jsモード
    1000桁のπ計算は数秒かかります


    BigInt モード(1÷9801・四則演算・整数べき乗・階乗など)は非常に高速です。
    decimal.js モード(π・√・ln・sin など超越関数)は桁数が多いほど時間がかかります。
    πの1000桁は数秒かかる場合があります。
    ※ 計算はすべてブラウザ内で完結します。外部サーバーへのデータ送信は一切ありません。


    余談 40年前のPC-9801で、この計算はできたのか?

    アイキャッチ画像に PC-9801 を使ったので、ふと気になって調べてみました。
    「当時のPC-9801で 1÷9801 のパターンは確認できたのか?」——答えは、そのままでは無理です。

    PC-9801 に搭載されていた N88-BASIC(86) の倍精度浮動小数点は、有効桁数が約16桁。
    PRINT 1/9801 と打っても表示されるのは小数点以下16桁程度で、
    せいぜい 00 01 02 03 04 05 06 07 あたりまでしか見えません。
    98 が消える箇所は循環節の196桁目付近なので、まったく届きません。

    N88-BASIC で 1÷9801
    PRINT USING "##.################"; 1/9801
    0.000102030405060708(ここで精度の限界)

    198桁の循環節を確認するには、標準の浮動小数点演算では桁がまったく足りません。

    では不可能だったのかというと、そうでもありません。
    多倍長演算を自分でプログラムすればよいのです。
    整数配列に桁を格納し、筆算の要領で割り算するプログラムを N88-BASIC で書けば、10〜20行程度のコードで200桁以上の計算は可能でした。

    ただし、CPU は Intel 8086 互換の 5MHz、BASIC はインタプリタ実行です。
    200桁程度の筆算でも数秒〜十数秒はかかったでしょうし、さらに高速化を目指すならマシン語(アセンブリ)で書く必要がありました。

    当時の月刊I/O誌やベーマガ(マイコンBASICマガジン)には、多倍長演算やπの計算プログラムがよく投稿されていました。
    そういった記事を読みながら自分で実装する——それが、あの時代のエンジニアの楽しみ方でした。

    今はブラウザ上の JavaScript で一瞬のうちに1000桁が計算できます。
    この記事の計算機も、PC-9801 ならば何時間もかかったであろう計算を、手元のスマートフォンが一瞬でやってのけます。
    40年の技術の進歩を感じつつも、「自分の手で確かめたい」という衝動は、当時も今も変わらないのだと思います。

    ちなみに、今のExcelでもこの計算は一工夫しなければできません。
    標準の浮動小数点が有効15桁程度なのは当時と同じで、200桁の循環節を見るには自分で筆算ロジックを組む必要があります。
    道具は40年分進歩しましたが、「そのままではできない、だから工夫する」という構図は変わらないのですね。


    この記事を書いたきっかけ
    ネット上で 1÷9801 の話題を見かけて、「本当にそうなるのか?」と気になり、AI に計算用の Python スクリプト(小数点以下100万桁まで計算可能!😲)を書いてもらったのがはじまりです。
    実際に 98 が消えることを確認したら、今度は「98 が消えない式は作れないか」と調べたくなり、さらに数学的な背景を追いかけているうちに、いつの間にか記事一本分になっていました。
    かなり忘れていた数列や微分の復習にもなりました。

    この記事の大部分は AI を活用して書いています。
    AI を使えば複雑な計算も一瞬ですが、「なぜそうなるのか」を理解する面白さは、計算を速くすることとはまた違った魅力があると感じています。

    中嶋


    ※ この記事中の大きな数(\(100^{100}\) 等)の実際の計算には、JavaScript の BigInt などの任意精度演算が必要です。
    Excel などの通常の浮動小数点演算では桁数が足りません。