[logo] Web連載「数学ガールの秘密ノート」
Share

第215回 シーズン22 エピソード5
プラスワンでどこまで行くの(前編)

登場人物紹介

:数学が好きな高校生。

テトラちゃんの後輩。好奇心旺盛で根気強い《元気少女》。

$ \newcommand{\TEXT}[1]{\textbf{#1}} \newcommand{\REMTEXT}[1]{\textbf{#1}} \newcommand{\SQRT}[1]{\sqrt{\mathstrut #1}} \newcommand{\FBOX}[1]{\fbox{ $#1$ }} \newcommand{\LEQ}{\leqq} \newcommand{\ABS}[1]{\bigl|#1\bigr|} \newcommand{\LAND}{\land} \newcommand{\LOR}{\,\lor\,} \newcommand{\SETL}{\bigl\{} \newcommand{\SETM}{\bigm|} \newcommand{\SETR}{\bigr\}} \newcommand{\SETRDOT}{\bigr.} \newcommand{\SETLDOT}{\bigl.} \newcommand{\REAL}{{\mathbb R}} \newcommand{\VECV}[2]{\binom{#1}{#2}} \newcommand{\LOOKSLIKE}{\quad\longleftrightarrow\quad} \newcommand{\ZERO}{\bigl\{\,\bigr\}} \newcommand{\ONE}{\bigl\{\,\{\,\}\,\bigr\}} \newcommand{\TWO}{\Bigl\{\,\bigl\{\,\bigr\},\, \bigl\{\,\{\,\}\,\bigr\}\,\Bigr\}} \newcommand{\THREE}{\biggl\{\,\Bigl\{\,\Bigr\},\, \Bigl\{\,\bigl\{\,\bigr\}\,\Bigr\},\,\Bigl\{\,\bigl\{\,\bigr\},\,\bigl\{\,\{\,\}\,\bigr\}\Bigr\}\,\biggr\}} \newcommand{\BINREP}[1]{{#1}_{(2)}} \newcommand{\SEVENREP}[1]{{#1}_{(7)}} $

マイナスワン

ここは高校の図書室。いまは放課後。

僕は後輩のテトラちゃんとおしゃべりをしている。

「……という話をユーリとしていたんだよ」

テトラ「なるほどです。小数が無限に続くかどうかは 《何進法で表しているか》という《数の表記法》の問題なんですね。 そんなふうに考えたことはありませんでした(第214回参照)」

「うん。 《数字が無限に続くからキリが悪い》という感覚は、 《数の値》の問題じゃなく《数の表記法》の問題といえるんだね……あ、そうだ。 表記法といえば最近おもしろい本が出版されたよね。 素数を印刷した本

テトラ「素数を印刷した本……ああ、 $2,3,5,7,\ldots$ のような素数表でしょうか」

「いや、そうじゃなくて、 本一冊が《たった一つの素数》を書き表している本という意味」

テトラ「すみません。意味がわからないんですが」

『2017年最大の素数』という本。 2017年の時点で人類が知っている最大の素数ひとつを、まるごと紙の本に印刷してしまったんだ。 50番目のメルセンヌ素数で、二千三百二十四万九千四百二十五桁あるそうだよ」

テトラ「え?  $23,249,425$ けた?!」

「そうそう。すごいよね。数百ページの本だって」

テトラ「数字がびっしり書かれている本ということですね」

「そうなるね……うん、それで、これはメルセンヌ素数だから、 $$ 2^{N} - 1 $$ という形になっているんだ。ここで $N = 77232917$ という数」

テトラ「メルセンヌ素数というのは $2^{N} - 1$ の形をした素数ということですね」

「そうだね。だから、十進法の位取り記数法で表記すると数百ページの本を埋め尽くす数字列が、とても短く、 $$ 2^{77232917} - 1 $$ と表記できるともいえる」

テトラ「なるほど! それは、おもしろいといいますか、 不思議といいますか……最後にマイナス $1$ が付くのもアクセントっぽいですね」

「アクセントというか、もしも $2^{77232917}$ だったら、 偶数だから素数にはならないよ」

テトラ「あちゃっ! それはそうですね……」

「$2^{77232917} - 1$ は二進法で表すと楽しいよ。 だって、すべての桁が $1$ になるから」

テトラ「ええと……そうなりますかね」

「あれ? そうだよ。 $N$ が正の整数なら、 $2^N - 1$ の形をした数は何でも、 二進法で表したらすべての桁が $1$ になる。 メルセンヌ素数に限らずね。 小さい数で確かめてみようか?」

$2^{N} - 1$ を二進法で表記すると $1$ が並ぶ

$$ \begin{align*} 2^1 - 1 &= 1 &&= \BINREP{1} \\ 2^2 - 1 &= 3 &&= \BINREP{11} \\ 2^3 - 1 &= 7 &&= \BINREP{111} \\ 2^4 - 1 &= 15 &&= \BINREP{1111} \\ 2^5 - 1 &= 31 &&= \BINREP{11111} \\ &\vdots && \vdots \\ \end{align*} $$

テトラ「ははあ……確かにそうですね。あれれ、 もしかして、これって当たり前ですか? だって、二進法の各桁は $2^N$ ですから……」

「まあ、当たり前といえばそうだね。二進法の各桁は $2$ の冪乗になる。 下の位から、 $2^0$ の位、 $2^1$ の位、 $2^2$ の位……とね。 だから、 $2^N$ という数を二進法で表記すると、 $2^N$ の位が $1$ になって、そこから下はぜんぶ $0$ になる。 何個の $0$ が並ぶと思う?」

テトラ「$0$ が、ええと……はい、 $N$ 個ならぶと思います」

「どうして、そう思ったの?」

テトラ「小さな数で試してみました。 たとえば、 $2^3 = 8$ という数だと、二進法で $\BINREP{1000}$ で、 $0$ が $3$ 個になりますから……」

「そうだね」

$$ 2^N = \BINREP{1000\cdots0} \qquad \REMTEXT{$1$のあとに$N$個の$0$} $$

テトラ「ははあ、ということは、 確かに $2^N - 1$ は二進法で表記すると $1$ が $N$ 個ならびますね。 だって、そこに $1$ を足したら、どどどどっと繰り上がりしなくちゃいけませんから」

「そうだね。だから、 $2^N - 1$ は二進法で表記すると $1$ が $N$ 個並ぶことになる」

$$ 2^N - 1 = \BINREP{111\cdots1} \qquad \REMTEXT{$N$個の$1$} $$

テトラ「はいはい、わかります」

「$N = 4$ で確認してみると、 $$ 2^4 - 1 = \BINREP{1111} \qquad \REMTEXT{$4$個の$1$} $$ うん、確かにあってる。 ということは、2017年最大の素数というのは……」

テトラ「こうですねっ!」

$$ 2^{77232917} - 1 = \BINREP{111\cdots1} \qquad \REMTEXT{$77232917$個の$1$} $$

「だから、もしも『2017年最大の素数』を二進数で表したものを本にしたいなら、 七千七百二十三万二千九百十七個の $1$ を並べればいいということになるね」

テトラ「……くっ、くくっ……」

テトラちゃんは急にお腹を押さえて顔を伏せた。

「どうしたの! お腹いたいの?」

テトラ「い、いえ……ちょっと笑いのツボに入ってしまいました……そんなに、たくさんの $1$ が並んだ本……」

プラスワン

テトラ「し、失礼しました。それにしても、ちょっと意外でした」

「二進法で $1$ が並ぶのがそんなに意外かなあ」

テトラ「いえいえ、そうではなくてですね。 ユーリちゃんとのお話で出てきた《大きい数の勝負》のことです(第211回参照)」

「ああ……」

テトラ「先輩が『どちらの方が大きい数をいえるか競争』 なんて子供っぽいことやってたなんて」

「まあ、小学生のころの話だし。 テトラちゃんはそういうのはなかったの?」

テトラ「え? あたしですか? なかったです……なかったと思います。 そういう、なんていいますか、 ストレートな言い争いはなかったです」

「そうなんだ」

テトラ「あ、でも、 先輩がおっしゃっていた《足す $1$》で《無限》 を感じるというのはわかるような気がします。 以前、ペアノの公理のときもその話題が出てきました(『数学ガール/ゲーデルの不完全性定理』参照)」

「うんうん、そうだね。僕もそのことを考えていたよ。 数学的帰納法の話にもつながっていく」

テトラ「数学的帰納法! それはドミノ倒しですね」

「そうだね。二つのステップで……」

テトラ「お待ちください、先輩。テトラにいわせてください。 以前、先輩からきちんと数学的帰納法は教わりました(『数学ガールの秘密ノート/整数で遊ぼう』参照)。 ですから、あたしはそれを説明できるはずですっ!」

「おお! テトラちゃんが覚醒モードに!」

テトラちゃんは真面目な顔でノートに書き始めた。

は茶化し気味に煽ったことをやや反省しつつ、 彼女が数学的帰納法について書くのを待つ。

テトラ「……ここまで、思い出せましたけど」

数学的帰納法の二つのステップ(?)

《ステップA》

「$n = 1$ のときに成り立つ」ことを証明する。

《ステップB》

どんな正の整数 $k$ についても、

 「$n = k$ のときに成り立つ」と仮定すると、
 「$n = k+1$ のときも成り立つ」

ことを証明する。

「うん。これはこれで正しいけど?」

テトラ「ええと、いくつか引っかかっていることがあります。 順番にお話ししますね。 あたしは、数学的帰納法が二つのステップでできているというのを覚えていました。 たとえばその二つに《ステップA》と《ステップB》のように名前を付けます」

「うんうん」

テトラ「《ステップA》は、何というか当たり前の話で、 $n = 1$ のときに成り立つことを証明するというステップです……でも、 あの、これは《何が成り立つことを証明する》と表現すればいいんでしょうか」

「ああ、なるほど。いまテトラちゃんは《ステップA》の話を始めたけど、 ちょっとそこでストップしよう。そもそも数学的帰納法って、何?

テトラ「数学的帰納法というのは……数学で、 $1,2,3,\ldots$ について何かを証明するときの……方法?」

「そうだね。もう少しきちんというと、 いま、正の整数 $n$ についての数学的な主張があるとする。 主張といっても、命題といっても、条件といっても、述語といってもいいんだけど、 とにかく $n$ が与えられると真か偽か定まるような主張があるとする」

テトラ「はい。わかります」

「たとえばその主張を $P(n)$ と書くことにする。たとえば、だよ。 そうすると、 $P(123)$ は真だとか、 $P(7)$ は偽だとか決まる」

テトラ「はいはい」

「$P(1)$ が真で、 $P(2)$ も真で、 $P(3)$ も真で……と調べていったとしても、 すべての正の整数 $n$ について $P(n)$ が真であることは調べられない」

テトラ「正の整数は無限にあるから、ですね」

「そういうこと。もちろん、何か一つでも $P(n)$ が偽になるような $n$ が見つかれば、 すべての正の整数 $n$ について $P(n)$ が真であるとはいえないよ。そのような $n$ が反例になるから」

テトラ「はい、わかります」

「でも、もしも、すべての正の整数について $P(n)$ が真になるということを言いたかったら、 ひとつひとつ具体的に確かめるんじゃなくて、証明しなくちゃならない。正の整数は無限にあるから」

テトラ「なるほど。そこで使うのが数学的帰納法!」

「だね。だから、数学的帰納法は何かといわれたら、 すべての正の整数 $n$ に対して、 数学的主張 $P(n)$ が成り立つことを証明するための証明法である……となる」

テトラ「理解しました。 あたしは先走りしてしまいましたね。二つのステップがあって……という前に、 数学的帰納法とは何かを言うべきでした」

「さて、それで……」

テトラ「はい。では再スタートします。 数学的帰納法というのは、すべての正の整数 $n$ に対して、 数学的主張 $P(n)$ が成り立つことを証明するための証明法です。 証明するためには、二つのステップが必要です」

「うん」

テトラ「《ステップA》は、 $P(1)$ が成り立つことを証明するステップです。 当たり前ですけれど、大事です。 これは、ドミノ倒しで《$1$ 番目のドミノを倒す》ようにするものです」

「……」

テトラ「《ステップB》は、急激にややこしくなるんですが……」

「そうだね」

テトラ「《ステップB》は、どんな正の整数 $k$ に対しても、

   $P(k)$ が成り立てば、 $P(k+1)$ も成り立つ

ことを証明するステップです。 これは、ドミノ倒しで《$k$ 番目のドミノが倒れたら、 $k+1$ 番目のドミノも倒れる》ようなものです」

「その通り、その通り。《どんな正の整数 $k$ に対しても》というところがとても大事だね。 ずらっと並んだドミノのどこを見ても、ひとつ倒れたら次が倒れるという保証が大事」

テトラ「はい。これが数学的帰納法です」

「え?」

テトラ「え?」

「いやいや、最後にもう一度まとめてほしいなあ、テトラちゃん。 その《ステップA》と《ステップB》が証明されたら、何が証明されることになるの?」

テトラ「あっ、そういうことですか。 はい。《ステップA》と《ステップB》の二つを証明したら、 どんな正の整数 $n$ に対しても、 $P(n)$ が成り立つことが証明できたことになります。 ……これが、数学的帰納法です」

「そうそう。そこまで言い切ると、とても気持ちがいいね。 《すべての正の整数について何かを証明せよ》という問題が出たら、数学的帰納法を使うというのはよくあること。 そのときには、テトラちゃんがいう二つのステップに分けて答えることになる。 つまりそれは、証明の方針が明確になるということだね。 くだけた言い方をすれば《何を書けば証明したことになるか》がはっきりしたともいえる」

テトラ「何を書けば証明したことになるか……なるほど」

「そうだね。証明問題が苦手な人の中には《何を書けば証明したことになるか》がピンと来ない人がいる。 目の前にはいかにも成り立ちそうな正の整数に関する数学的主張がある。 適当な正の整数を代入しても確かに成り立ちそうだ。 でも、何を書けば証明したことになるんだろう?……と途方にくれちゃうんだね」

テトラ「あたし……そういう悩み方、しょっちゅうするかもです」

「数学的帰納法は証明法の一つだから、証明の方針をしっかり教えてくれる。 テトラちゃんが言ったように、ドミノ倒しみたいだね。 でも全部のドミノを具体的に倒すんじゃなくて、二つのステップを使って倒しちゃうわけなんだ」

数学的帰納法

$P(n)$ は、正の整数 $n$ についての数学的主張とする。

すべての正の整数 $n$ について $P(n)$ が成り立つことを証明するには、 以下の《ステップA》と《ステップB》を証明すればよい。

《ステップA》 $P(1)$ が成り立つ。

《ステップB》 どんな正の整数 $k$ についても、 $P(k)$ が成り立つならば $P(k+1)$ が成り立つ。

「《ステップA》と《ステップB》を証明することで、 すべての正の整数 $n$ について $P(n)$ が成り立つことが証明できる」 というこの証明法を、数学的帰納法という。

数学的帰納法を使う

テトラ「先輩! 何か問題出していただけませんか?」

「えっ?」

テトラ「あたし、数学的帰納法という武器を使ってみたいです! テトラはいま、 《すべての正の整数 $n$ についての数学的主張》を切望してます!」

「すごいなあ……じゃあね、たとえばこういうのは?」

無料で「試し読み」できるのはここまでです。 この続きをお読みになるには「読み放題プラン」へのご参加が必要です。

ひと月500円で「読み放題プラン」へご参加いただきますと、 435本すべての記事が読み放題になりますので、 ぜひ、ご参加ください。


参加済みの方/すぐに参加したい方はこちら

結城浩のメンバーシップで参加 結城浩のpixivFANBOXで参加

(2018年2月2日)

[icon]

結城浩(ゆうき・ひろし) @hyuki


『数学ガール』作者。 結城メルマガWeb連載を毎週書いてます。 文章書きとプログラミングが好きなクリスチャン。2014年日本数学会出版賞受賞。

Twitter note 結城メルマガ Mastodon Bluesky Threads Home