第15話 無限小数 論理式
「とりあえず特徴が挙がったわけだから、無限小数を論理式にしていきたい」
・整数部分は整数ならなんでもいい
・整数部分は位を付けて読み、小数部分は羅列して読む
・有限小数と無限小数がある
・繰り返しがある小数(有理数)と、繰り返しがない小数がある(無理数)
・有限小数の最後に0を付け加えても構わない
・有限小数の最後に0を加え続けて無限小数にしてももとの小数と等しい
「さて…そして、ここまでの話題の途中で、小数は数列に似ている、ということもわかっている」
「じゃあ、いっそのこと数列にしよう。そして、これ、なんかできる気がする」
「やってみる?」
「うん。まず有限小数を考えて、13.571とかね。これってこういう数列にできるよね」
a₀=13
a₁=5
a₂=7
a₃=1
「それで、13.571を13と5と7と1に分けた時、こういう風にもとの小数に復元できる」
13.571=13+5×0.1+7×0.01+1×0.001
「えっと、もうちょっと機能的にするとこっちのほうがいいかも」
13.571=13+5×0.1+7×0.1²+1×0.1³
「これで、小数の特徴のひとつ、"整数部分は位を付けて読み、小数部分は羅列して読む"が式に現れてる気がする!」
「いい感じだけど、ちょっとこれに書き加えていい?」
藍が聞く。
「もちろんだよ。どんな風に?」
13.571=13×0.1⁰+5×0.1¹+7×0.1²+1×0.1³
「なるほど、それはいいけど、こうするとなにかいいことある?」
「あるねえ。こういう式にできる…とこれは湾に書いてもらったほうがいいかもしれないけど、書いちゃえ」
13.571=∑[k=0→3]aₖ0.1ᵏ
「うっ」
「うん、シグマ"∑"は慣れてないとまあ読みづらいよね。∑を論理式で書くとこうだ」
∑[k=n→m]f(k):
((n=m→∑[k=n→m]f(k)=f(m))∧(n<m→∑[k=n→m-1]f(k)+f(m)))
「ただし、これはいま理解するのは非常につらいと思うので…、次のように書いてごまかす」
∑[k=n→m]f(k):
f(n)+f(n+1)+f(n+2)+…+f(m)
「もし関数記号fに慣れてないなら」
∑[k=n→m](kを使った式):
(k=nを代入)+(k=n+1を代入)+(k=n+2を代入)+…+(k=mを代入)
「まあ、簡単に言うと、こういうこと」
a₀=13
a₁=5
a₂=7
a₃=1
これに注意して、
∑[k=0→3]aₖ0.1ᵏ
=a₀0.1⁰+a₁0.1¹+a₂0.1²+a₃0.1³
=13×0.1⁰+5×0.1¹+7×0.1²+1×0.1³
=13.571
「シグマは高校生の時やって、公式丸暗記で乗り切った記憶しかなかったな」
「シグマはかなり論理式に近い考え方で作られた記号で、このシグマの定義の論理式は綺麗だから慣れるといいけど、でもこれはまた今度にしよう。とにかくシグマを使うと一発で数列を小数に戻すことができるのがいいよね」
「なるほど、わかってきたよ。数列を小数にして扱えるなら、小数を数列にして考えてもいいってことか」
湾はノートに書く
小数(考えたいもの)
↓
数列(考えやすいもの)
↓
小数(厳密化に成功)
「こんな感じかな」
「いいね。じゃあ、小数を数列にしたいんだけど、小数は全て無限小数にできるんだった。これはここに書いてあるよね」
藍はノートを指さす。
・有限小数の最後に0を加え続けて無限小数にしてももとの小数と等しい
「うん」
「じゃあ、適当にいくつか小数の無限数列を考えてみよう」
「できる限り多彩な方がいいと思うから、こんな感じがいいな」
0.002453194…
(整数部分が0、無秩序に並ぶ)
-35.22222222…
(負の数、整数部分が2桁、同じ数が並ぶ)
2.641616161…
(2桁おきに繰り返す)
「この3つをエントリーするよ」
「よし。では、はじめから数列にしていこう」
「まあ簡単だよね」
0.002453194…
の数列{aₙ}
a₀=0
a₁=0
a₂=0
a₃=2
a₄=4
a₅=5
a₆=3
a₇=1
a₈=9
a₉=4
「いいね。何か気付くことは?」
「そうだな、これだと見えにくいけど、整数部分が0項目に来てるイメージだね。aの添字がそのまま小数第何位かになってる」
「よし。他もどんどんいこう」
「あ、数列のaってaじゃなくてもいいよね、次はbにしてみよう」
「それは良いアイディア」
-35.22222222…
の数列{bₙ}
b₀=-35
b₁=2
b₂=2
b₃=2
b₄=2
b₅=2
b₆=2
「これくらいでいいよね」
「何か気付くことは?」
「さっきの数列{aₙ}はどうしようもなかったけど、今回はこんなふうに書けるよ」
湾は数列の下に式を書いた。
m≧1→bₘ=2
「いいね。なんだか少しずつ論理式に慣れてきた感じするね。じゃあ最後のいこう」
2.641616161…
の数列{cₙ}
c₀=2
c₁=6
c₂=4
c₃=1
c₄=6
c₅=1
c₆=6
c₇=1
c₈=6
c₉=1
「何か気付くことは?」
「当たり前のことでもいい?」
「もちろん。論理式は当たり前かどうかなんて判定してくれないので、必要なことは全部書かなきゃいけないからね」
「なら、数列の0項目、この言い方でいいよね。添字が0の項は整数だったら何でもいいけど、それ以外の項は0から9の自然数のどれかになる」
「それは大事なことだよ。むしろ、さっき小数の特徴を挙げたときに気付くべきだったな」
「たしかに。当たり前すぎて気付かなかった」
「論理式を作る作業は、自分が当たり前だと思って素通りしてたころにちゃんと意識を与えるってことだよ。普段通る道に咲いている花を探すような感じ」
「急に詩的になったね」
「ともかく、これで、3つ無限小数に対応する3つの数列ができた。今からしたいことはこうだ」
数列{aₙ}が無限小数の数列であるとは、以下の論理式を満たすことである
………
「これを完成させること」
「うん。わかるよ。そして、意外と簡単だね」
「そう?」
「うん。この無限小数になれる数列は、0項目が整数で、1項目以降が0から9のあいだの自然数であれば良いんだから」
「確かに。じゃあ作ってみて」
湾はノートに書く。
m=0→aₘ∈ℤ
m≧1→0≦aₘ≦9
「あれ…?」
「どうかした?」
「この2つの式をどうやって繋ぐんだろう。"または"でも"かつ"でも良さそう」
「そうだね、それは慣れてないと少し難しいかも。"ならば"についてよく知っていないと厳しいね。"AならばB"は"Aが成立する条件のもとでBが成立する"ことだったんだけど、そもそもAが成立しないときはどうなんだろうか。こういうパターンを考えてみよう」
∀x∈ℕ((xは4の倍数)→(xは偶数))
「これは成り立つ?」
「成り立つね。4の倍数は全て偶数だ」
「よし。この式は全てのx∈ℕで成り立つ。では、x=3のときも成り立つはずだ」
「あれ、あれれ?」
「いや、湾は正しい。この式は成り立つ。x=3のときでも成り立つ。実は
AならばB
は、
Aが成立するときBも成立すれば全体が成立、Aが成立しないときはいつでも全体が成立
という意味なんだ。これを踏まえて考えてみよう」
「いまいちピンとこないけど、わかった。藍を信用してみる」
「まあ数学やってるときはいつでも疑っていいけどね…」
「とりあえず、"または"と"かつ"両方考えて、どちらが相応しいか考えよう」
湾は宣言するように言った。
∨"または"のパターン
(m=0→aₘ∈ℤ)∨(m≧1→0≦aₘ≦9)
「えっと、m=3とか適当なので試せば良いのかな」
「そうだね。m=0も確かめると良いかも」
「わかった」
m=0のとき
"または"の左側の式(m=0→aₘ∈ℤ)を見ると、
"ならば"の条件が成立するので、aₘ∈ℤが成り立ったときに成立。
"または"の右側の式(m≧1→0≦aₘ≦9)を見ると、
"ならば"の条件が成立しないので、全体は成立。
そして、"または"はどちらか一つでも成立していれば全体も成立。右側の式が成立してるから全体も成立。
「あれ?成立ってどういうことだっけ?」
「m=0のとき、成立する」
「項が0番目の時に成立?」
「この場合は、0番目の項がなんであっても成立、だね」
「なんであっても…、2.4とかでも?」
「うん」
「それはおかしい」
「おかしいね」
「すでにおかしいけど、m=3も確かめる?」
「もちろん」
m=3のとき
"または"の左側の式(m=0→aₘ∈ℤ)を見ると、
"ならば"の条件が成立しないので、全体は成立。
"または"の右側の式(m≧1→0≦aₘ≦9)を見ると、
"ならば"の条件が成立するので、0≦aₘ≦9が成り立ったときに成立。
そして、"または"はどちらか一つでも成立していれば成立。右側の式が成立してるから成立。
「これはつまりどういうときでも成立するってことだね…」
「そう。"ならば"で場合分けをしたときに、"または"でつないでしまうと、いつでも成立してしまう。ということは?」
「"かつ"でつなごう。これも確認するよ」
「もちろん」
∧"かつ"のパターン
(m=0→aₘ∈ℤ)∧(m≧1→0≦aₘ≦9)
m=0のとき
"かつ"の左側の式(m=0→aₘ∈ℤ)を見ると、
"ならば"の条件が成立するので、aₘ∈ℤが成り立ったときに成立。
"かつ"の右側の式(m≧1→0≦aₘ≦9)を見ると、
"ならば"の条件が成立しないので、全体は成立。
そして、"かつ"は両方成立しなければ全体は成立しない。よって、aₘ∈ℤが成り立つときに成立。
「まさにこれがしたかったことだよ。m=3も確かめよう」
m=3のとき
"または"の左側の式(m=0→aₘ∈ℤ)を見ると、
"ならば"の条件が成立しないので、全体は成立。
"または"の右側の式(m≧1→0≦aₘ≦9)を見ると、
"ならば"の条件が成立するので、0≦aₘ≦9が成り立ったときに成立。
そして、"かつ"は両方成立しなければ全体は成立しない。よって、0≦aₘ≦9が成り立つときに成立。
「こっちも完璧」
「じゃあ、論理式を完成させよう。ついでに日本語部分もどうぞ」
数列{aₙ}が無限小数の数列であるとは、以下の論理式を満たすことである
(m=0→aₘ∈ℤ)∧(m≧1→0≦aₘ≦9)
「どう?」
「さて、何がいけないでしょう」
「え?いけないところあるの?」
「探してみて」
「えっと…、aₘが整数になるか、aₘが0以上9以下になるか…、あ、そっか、右側の式はaₘが自然数だといえてない。これを追加するね」
「うん」
(m=0→aₘ∈ℤ)∧(m≧1→(0≦aₘ≦9∧aₘ∈ℕ))
「これでもよさそうだけど、m=0のときもそれ以外のときもどちらにしろ整数であることには変わらないよね」
「ああ、たしかに、自然数を整数にしても同じだ」
「ならこうしよう」
aₘ∈ℤ∧(m≧1→0≦aₘ≦9)
「え?すっきりし過ぎじゃない?」
「そう。ものすごくすっきりしたでしょ」
「これ、いいのかな?そもそもm=0の時の条件消えてるけど…」
「そう。aₘはいつでも整数でなきゃいけない。そして、mが1以上のときはさらに0から9の間でなくてはいけない」
「あ、そっか。m=0のときは整数だったらなんでもいいことを利用したんだね」
「そう」
「よし、清書しよう」
数列{aₙ}が無限小数の数列であるとは、以下の論理式を満たすことである
aₘ∈ℤ∧(m≧1→0≦aₘ≦9)
「よし、できた!」
「さて、なにがいけないでしょう」
「えっ」
「まだこれではだめなところがある」
「え?そうかな?」
「探してみて」
2分ほど湾が考え込むが、結局沈黙のままだった。
沈黙を藍が破る。
「これは少し難しい話なんだけれど、mが良くない。mが自然数でないといけない、ということもそうだけど、さらに、mが量化されてなければならない。つまり」
∀m∈ℕ
「これがどこかに必要なんだ」
「ちょっと理解できてないかも」
「そうだね、この部分は少し難しい。だけど、こう考えたらどうだろう?」
mって何?
「この問いに日本語の部分も論理式の部分も何も言っていない。ただ、すべての自然数mついてこの論理式が成り立つときに、この数列は無限小数の数列ということにしている。だから必要なんだ」
「難しいな…これはまた今度説明してくれる?」
「もちろん」
「とりあえず完成させよう」
数列{aₙ}が無限小数の数列であるとは、以下の論理式を満たすことである
∀m∈ℕ(aₘ∈ℤ∧(m≧1→0≦aₘ≦9))
「これで良いかな」
「これで良い。簡単なようで、厳密に論理式を書くのは難しいよね」
「うん…ちょっと恐怖症になりそう」
「大丈夫。英語を勉強しはじめたとき、前置詞を毎回完璧にはできないように、冠詞が理解しづらいように、三単現を忘れてしまうように、論理式も勉強し始めたときは少し変な式を書いてしまうことがある。英語なら、想像で補完してくれるけど、論理式は補完はしてくれない」
「藍みたいに論理式を手足のごとく使えるようになるかな」
「私だって日本語を、小説家のように、詩人のように、完璧に使いこなせるわけではない。それと同じで、論理式を使っても言えることは限られているし、間違えることもある。だからこれからも一緒に論理式を見ていこう」
「そんなものかな」
「怖がらないで。これから先、すごく楽しい世界が広がってるんだから」
藍はぎこちなく、しかししっかりと後ろから湾を抱きしめた。そして耳元で囁く。
「それに、まだ終わってない。無限小数が実際何を表すのか。0.999…の正体はなにか、まだ明らかになってない。そして…、その概念たちが今か今かとノートの先に待っているよ」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます