SlideShare a Scribd company logo
Submit Search
Upload
何もないところから数を作る
Report
Share
Taketo Sano
Follow
•
39 likes
•
9,538 views
1
of
104
何もないところから数を作る
•
39 likes
•
9,538 views
Report
Share
Download Now
Download to read offline
Science
7/24「第4回プログラマのための数学勉強会」にて発表。
Read more
Taketo Sano
Follow
Recommended
競技プログラミングでの線型方程式系 by
競技プログラミングでの線型方程式系
tmaehara
6.5K views
•
11 slides
F#入門 ~関数プログラミングとは何か~ by
F#入門 ~関数プログラミングとは何か~
Nobuhisa Koizumi
3.6K views
•
79 slides
辺彩色 by
辺彩色
Ken Ogura
8.9K views
•
38 slides
様々な全域木問題 by
様々な全域木問題
tmaehara
37.7K views
•
71 slides
定理証明支援系Coqについて by
定理証明支援系Coqについて
Yoshihiro Mizoguchi
8K views
•
45 slides
双対性 by
双対性
Yoichi Iwata
25.8K views
•
89 slides
More Related Content
What's hot
Convex Hull Trick by
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
3.3K views
•
48 slides
Re永続データ構造が分からない人のためのスライド by
Re永続データ構造が分からない人のためのスライド
Masaki Hara
13K views
•
88 slides
2SAT(充足可能性問題)の解き方 by
2SAT(充足可能性問題)の解き方
Tsuneo Yoshioka
6.6K views
•
10 slides
条件分岐とcmovとmaxps by
条件分岐とcmovとmaxps
MITSUNARI Shigeo
5.7K views
•
24 slides
inversion counting by
inversion counting
tmaehara
4.2K views
•
10 slides
Intro to SVE 富岳のA64FXを触ってみた by
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
11.6K views
•
24 slides
What's hot
(20)
Convex Hull Trick by HCPC: 北海道大学競技プログラミングサークル
Convex Hull Trick
HCPC: 北海道大学競技プログラミングサークル
•
3.3K views
Re永続データ構造が分からない人のためのスライド by Masaki Hara
Re永続データ構造が分からない人のためのスライド
Masaki Hara
•
13K views
2SAT(充足可能性問題)の解き方 by Tsuneo Yoshioka
2SAT(充足可能性問題)の解き方
Tsuneo Yoshioka
•
6.6K views
条件分岐とcmovとmaxps by MITSUNARI Shigeo
条件分岐とcmovとmaxps
MITSUNARI Shigeo
•
5.7K views
inversion counting by tmaehara
inversion counting
tmaehara
•
4.2K views
Intro to SVE 富岳のA64FXを触ってみた by MITSUNARI Shigeo
Intro to SVE 富岳のA64FXを触ってみた
MITSUNARI Shigeo
•
11.6K views
「にじたい」へのいざない #ロマンティック数学ナイト by Junpei Tsuji
「にじたい」へのいざない #ロマンティック数学ナイト
Junpei Tsuji
•
962 views
代数方程式とガロア理論 by Junpei Tsuji
代数方程式とガロア理論
Junpei Tsuji
•
58.3K views
LCA and RMQ ~簡潔もあるよ!~ by Yuma Inoue
LCA and RMQ ~簡潔もあるよ!~
Yuma Inoue
•
11.1K views
高速フーリエ変換 by AtCoder Inc.
高速フーリエ変換
AtCoder Inc.
•
74.5K views
ZDD入門-お姉さんを救う方法 by nishio
ZDD入門-お姉さんを救う方法
nishio
•
19.9K views
AtCoder Regular Contest 045 解説 by AtCoder Inc.
AtCoder Regular Contest 045 解説
AtCoder Inc.
•
7.1K views
全域木いろいろ by HCPC: 北海道大学競技プログラミングサークル
全域木いろいろ
HCPC: 北海道大学競技プログラミングサークル
•
7K views
AtCoder Regular Contest 031 解説 by AtCoder Inc.
AtCoder Regular Contest 031 解説
AtCoder Inc.
•
11K views
数式を(ちょっとしか)使わずに隠れマルコフモデル by Yuya Takashina
数式を(ちょっとしか)使わずに隠れマルコフモデル
Yuya Takashina
•
9.1K views
AtCoderに毎回参加したくなる仕組み by AtCoder Inc.
AtCoderに毎回参加したくなる仕組み
AtCoder Inc.
•
12.6K views
充足可能性問題のいろいろ by Hiroshi Yamashita
充足可能性問題のいろいろ
Hiroshi Yamashita
•
7.3K views
x^2+ny^2の形で表せる素数の法則と類体論 by Junpei Tsuji
x^2+ny^2の形で表せる素数の法則と類体論
Junpei Tsuji
•
4K views
Amortize analysis of Deque with 2 Stack by Ken Ogura
Amortize analysis of Deque with 2 Stack
Ken Ogura
•
4.7K views
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015 by CODE BLUE
Master Canary Forging: 新しいスタックカナリア回避手法の提案 by 小池 悠生 - CODE BLUE 2015
CODE BLUE
•
5.3K views
Viewers also liked
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学 by
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
Taketo Sano
4.5K views
•
56 slides
コンピュータで全く使われない数表現 by
コンピュータで全く使われない数表現
Yu(u)ki IWABUCHI
6.6K views
•
43 slides
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト by
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
7.6K views
•
83 slides
基底変換、固有値・固有ベクトル、そしてその先 by
基底変換、固有値・固有ベクトル、そしてその先
Taketo Sano
31.4K views
•
50 slides
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列 by
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
Taketo Sano
57.3K views
•
113 slides
何もないところから数を作る by
何もないところから数を作る
Taketo Sano
4.8K views
•
103 slides
Viewers also liked
(20)
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学 by Taketo Sano
「数える」とは何か? 〜 「とは何か?」を問う、AI時代の数学
Taketo Sano
•
4.5K views
コンピュータで全く使われない数表現 by Yu(u)ki IWABUCHI
コンピュータで全く使われない数表現
Yu(u)ki IWABUCHI
•
6.6K views
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト by Taketo Sano
objc2swift 〜 Objective-C から Swift への「コード&パラダイム」シフト
Taketo Sano
•
7.6K views
基底変換、固有値・固有ベクトル、そしてその先 by Taketo Sano
基底変換、固有値・固有ベクトル、そしてその先
Taketo Sano
•
31.4K views
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列 by Taketo Sano
プログラマのための線形代数再入門2 〜 要件定義から学ぶ行列式と逆行列
Taketo Sano
•
57.3K views
何もないところから数を作る by Taketo Sano
何もないところから数を作る
Taketo Sano
•
4.8K views
「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg by Junpei Tsuji
「時計の世界の整数論」第2回プログラマのための数学勉強会 #maths4pg
Junpei Tsuji
•
79.7K views
プログラマのための線形代数再入門 by Taketo Sano
プログラマのための線形代数再入門
Taketo Sano
•
53.9K views
objc2swift (続・自動変換の野望) by Taketo Sano
objc2swift (続・自動変換の野望)
Taketo Sano
•
4.3K views
「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg by Junpei Tsuji
「明日話したくなる「素数」のお話」第1回プログラマのための数学勉強会 #maths4pg
Junpei Tsuji
•
70.3K views
エニグマ暗号とは何だったのか by Takahiro (Poly) Horikawa
エニグマ暗号とは何だったのか
Takahiro (Poly) Horikawa
•
56K views
証明プログラミング入門2 by Kyoko Kadowaki
証明プログラミング入門2
Kyoko Kadowaki
•
46.7K views
さらに上を目指すための iOS アプリ設計 by Taketo Sano
さらに上を目指すための iOS アプリ設計
Taketo Sano
•
30.9K views
コードを書けば複素数がわかる by Taketo Sano
コードを書けば複素数がわかる
Taketo Sano
•
4.8K views
フーリエ変換と画像圧縮の仕組み by yuichi takeda
フーリエ変換と画像圧縮の仕組み
yuichi takeda
•
239.5K views
情報幾何学 #2.4 by Taketo Sano
情報幾何学 #2.4
Taketo Sano
•
2K views
今日からはじめる微分方程式 by Ryo Kaji
今日からはじめる微分方程式
Ryo Kaji
•
5.1K views
暗号文のままで計算しよう - 準同型暗号入門 - by MITSUNARI Shigeo
暗号文のままで計算しよう - 準同型暗号入門 -
MITSUNARI Shigeo
•
43.7K views
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理 by Ken'ichi Matsui
基礎からのベイズ統計学 輪読会資料 第1章 確率に関するベイズの定理
Ken'ichi Matsui
•
146.1K views
15分でわかる(範囲の)ベイズ統計学 by Ken'ichi Matsui
15分でわかる(範囲の)ベイズ統計学
Ken'ichi Matsui
•
55K views
Similar to 何もないところから数を作る
代数的実数とCADの実装紹介 by
代数的実数とCADの実装紹介
Masahiro Sakai
3.8K views
•
71 slides
複素数・四元数と図形の回転 by
複素数・四元数と図形の回転
Yoshihiro Mizoguchi
8.7K views
•
54 slides
算数で体感する高度数学 by
算数で体感する高度数学
Arithmer Inc.
4K views
•
23 slides
プログラミング言語 Julia の紹介 by
プログラミング言語 Julia の紹介
Kentaro Iizuka
33.5K views
•
21 slides
JOIss2020 発表資料 by
JOIss2020 発表資料
mdkcpp 1015
111 views
•
78 slides
虚数は作れる!Swift で学ぶ複素数 by
虚数は作れる!Swift で学ぶ複素数
Taketo Sano
42.2K views
•
58 slides
Similar to 何もないところから数を作る
(20)
代数的実数とCADの実装紹介 by Masahiro Sakai
代数的実数とCADの実装紹介
Masahiro Sakai
•
3.8K views
複素数・四元数と図形の回転 by Yoshihiro Mizoguchi
複素数・四元数と図形の回転
Yoshihiro Mizoguchi
•
8.7K views
算数で体感する高度数学 by Arithmer Inc.
算数で体感する高度数学
Arithmer Inc.
•
4K views
プログラミング言語 Julia の紹介 by Kentaro Iizuka
プログラミング言語 Julia の紹介
Kentaro Iizuka
•
33.5K views
JOIss2020 発表資料 by mdkcpp 1015
JOIss2020 発表資料
mdkcpp 1015
•
111 views
虚数は作れる!Swift で学ぶ複素数 by Taketo Sano
虚数は作れる!Swift で学ぶ複素数
Taketo Sano
•
42.2K views
AtCoder Regular Contest 030 解説 by AtCoder Inc.
AtCoder Regular Contest 030 解説
AtCoder Inc.
•
9.9K views
Algorithm 速いアルゴリズムを書くための基礎 by Kenji Otsuka
Algorithm 速いアルゴリズムを書くための基礎
Kenji Otsuka
•
5.2K views
Reading Self-descriptive FizzBuzz by Hiroyuki Morita
Reading Self-descriptive FizzBuzz
Hiroyuki Morita
•
1.3K views
第9回スキル養成講座講義資料 by keiodig
第9回スキル養成講座講義資料
keiodig
•
97 views
TopCoder SRM614 解説 by EmKjp
TopCoder SRM614 解説
EmKjp
•
1.4K views
加法よりも低レベルな演算を考える by Yu(u)ki IWABUCHI
加法よりも低レベルな演算を考える
Yu(u)ki IWABUCHI
•
5.1K views
公開鍵暗号7: 楕円曲線の数理 by Joe Suzuki
公開鍵暗号7: 楕円曲線の数理
Joe Suzuki
•
1.2K views
純粋関数型アルゴリズム入門 by Kimikazu Kato
純粋関数型アルゴリズム入門
Kimikazu Kato
•
6.6K views
公開鍵暗号6: 楕円曲線における離散対数問題 by Joe Suzuki
公開鍵暗号6: 楕円曲線における離散対数問題
Joe Suzuki
•
1.9K views
ディジタル信号処理 課題解説(その3) 2014年度版 by dsp_kyoto_2014
ディジタル信号処理 課題解説(その3) 2014年度版
dsp_kyoto_2014
•
556 views
20170327_レムニスケートにまつわる色々な計算 by matsumoring
20170327_レムニスケートにまつわる色々な計算
matsumoring
•
2.2K views
introductino to persistent homology and topological data analysis by Tatsuki SHIMIZU
introductino to persistent homology and topological data analysis
Tatsuki SHIMIZU
•
961 views
社内機械学習勉強会 #5 by shingo suzuki
社内機械学習勉強会 #5
shingo suzuki
•
791 views
公開鍵暗号(4): 楕円曲線における離散対数問題 by Joe Suzuki
公開鍵暗号(4): 楕円曲線における離散対数問題
Joe Suzuki
•
918 views
More from Taketo Sano
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201... by
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Taketo Sano
1.1K views
•
52 slides
トポロジーと圏論の夜明け by
トポロジーと圏論の夜明け
Taketo Sano
3.4K views
•
81 slides
Swift で数学研究のススメ by
Swift で数学研究のススメ
Taketo Sano
1.4K views
•
33 slides
(意欲的な中高生のための)トポロジー・圏論・コンピュータ by
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
Taketo Sano
3.8K views
•
76 slides
特性類の気持ち by
特性類の気持ち
Taketo Sano
3.9K views
•
42 slides
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ by
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Taketo Sano
29.4K views
•
42 slides
More from Taketo Sano
(15)
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201... by Taketo Sano
Divisibility of Lee’s class and its relation with Rasmussen’s invariant / 201...
Taketo Sano
•
1.1K views
トポロジーと圏論の夜明け by Taketo Sano
トポロジーと圏論の夜明け
Taketo Sano
•
3.4K views
Swift で数学研究のススメ by Taketo Sano
Swift で数学研究のススメ
Taketo Sano
•
1.4K views
(意欲的な中高生のための)トポロジー・圏論・コンピュータ by Taketo Sano
(意欲的な中高生のための)トポロジー・圏論・コンピュータ
Taketo Sano
•
3.8K views
特性類の気持ち by Taketo Sano
特性類の気持ち
Taketo Sano
•
3.9K views
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ by Taketo Sano
Swift で数学のススメ 〜 プログラミングと数学は同時に学べ
Taketo Sano
•
29.4K views
山手線は丸いのか?プログラマのためのトポロジー入門 by Taketo Sano
山手線は丸いのか?プログラマのためのトポロジー入門
Taketo Sano
•
24K views
情報幾何学 #2 #infogeo16 by Taketo Sano
情報幾何学 #2 #infogeo16
Taketo Sano
•
2.2K views
objc2swift (自動変換の野望) by Taketo Sano
objc2swift (自動変換の野望)
Taketo Sano
•
6.6K views
2015 02-18 xxx-literalconvertible by Taketo Sano
2015 02-18 xxx-literalconvertible
Taketo Sano
•
3.8K views
let UIWebView as WKWebView by Taketo Sano
let UIWebView as WKWebView
Taketo Sano
•
29.5K views
ひろ子 in Objective-C by Taketo Sano
ひろ子 in Objective-C
Taketo Sano
•
6.6K views
Objective-C が好きになる Tips & Hack by Taketo Sano
Objective-C が好きになる Tips & Hack
Taketo Sano
•
38.7K views
Konashi で始める iOS 電子工作 by Taketo Sano
Konashi で始める iOS 電子工作
Taketo Sano
•
4.9K views
下位互換コード隠蔽のストイシズム by Taketo Sano
下位互換コード隠蔽のストイシズム
Taketo Sano
•
11.3K views
何もないところから数を作る
1.
何もないところから数を作る 2015/07/24 第4回プログラマのための数学勉強会 @taketo1024
2.
今日のテーマ 「数とは何か」
3.
「万物の根源は数である」 ピタゴラス (BC 582∼496)
4.
ピタゴラス (BC 582∼496) 「万物の根源は数である」 自然数とその比
5.
無理数などない ピタゴラス 死刑 ピタゴラス 先生、これ無理数ですけど… 弟子A 1 1 2
6.
ピタゴラス教団のシンボル 1 黄金比 φ
👈 これも無理数ww ぐぬぬ…
7.
ユークリッド (BC 300∼?) 『原論』の著者で「幾何学の父」。 「数」はやはり自然数のことになっている。
8.
古代ギリシャの滅亡と共にギリシャ数学は衰退、 イスラム世界に引き継がれ代数学が発展していく。
9.
代数方程式の解としての「無理数」 ' : 1
= 1 : ' 1 , '(' 1) = 1 , '2 ' 1 = 0 ' = 1 ± p 5 2
10.
13世紀頃、数学はヨーロッパに再輸入され次第に復活。 16世紀のルネッサンス期にはアラビア数字も採用され、 印刷技術の発展と共に急速に発展していく。
11.
17世紀:科学革命の時代 ニュートン、ライプニッツによって微積分学が発明される。 位置や速度など連続的に変化する量を解析する手段が確立される。 アイザック・ニュートン (1642 ∼ 1727) ゴットフリート・ヴィルヘルム・ライプニッツ (1646
∼ 1716)
12.
連続的に変化する量としての「実数」 t x
13.
18世紀もさらに物理学への応用として微積分学が発展 していくが、「無限小」「極限」などが曖昧なままで 変な結果が色々と出てきた。
14.
1X n=0 ( 1)n = 1
1 + 1 1 + 1 1 + 1 1 + ... = (1 1) + (1 1) + (1 1) + (1 1) + ... = 0 = 1 (1 1) (1 1) (1 1) (1 1)... = 1 0 = 1
15.
「解析学に幾何学で要求するような完全な厳密さを与えよう」
16.
コーシーとワイエルシュトラウスによって無限小や極限が定式化される。 → 理系大学生殺しの εδ
論法の完成! 19世紀:数学の基礎と抽象化 "- オーギュスタン=ルイ・コーシー (1789 ∼ 1857) カール・ワイエルシュトラス (1815 ∼ 1897)
17.
「幾何学で要求するような完全な厳密さ」 経験や直観によらず、定義・公理から出発し、 論理的な手続きのみによって理論を展開していく方法。=
18.
数列や関数の極限を扱うためには、 そもそも「実数」とは何かを定式化しなければいけない!
19.
実数の公理 1. 四則演算(+, ,
, )ができる。 2. 実数同士で大小( )が比較できる。 3. 実数全体はつながっている。
20.
実数の公理 👆 この「連続性」が有理数との決定的な違い! しかしこの事実を定式化するのはとても難しい… 1.
四則演算(+, , , )ができる。 2. 実数同士で大小( )が比較できる。 3. 実数全体はつながっている。
21.
「連続性」の定式化 • R の空でない有界な部分集合は上限を持つ。 •
R の上に有界な単調増加数列は収束する。 • R の有界な数列は収束部分列を持つ。 • 中間値の定理、最大値の定理が成り立つ。 • … → 実は全部同値になる。これが「定理」ではなく「公理」なのだ。 この辺でだいたいみんな数学に見放された気分になる。
22.
難しい話はともかく…
23.
実数の公理 1. 四則演算(+, ,
, )ができる。 2. 実数同士で大小( )が比較できる。 3. 実数全体はつながっている。 → 実数とはこういうものだとして、さらに極限や連続なども粛々と定義 していけば、解析学は曖昧さや矛盾なく作り上げていくことができる。
24.
うーん…
25.
一方的に「これは公理です」って言われるのは、 「これは仕様です」って言われるモヤモヤに似てる。
26.
【朗報】
27.
実数は有理数を「完備化」することで作れる!
28.
じゃ有理数はどうやって作るの?
29.
有理数は整数同士の割り算で作れる!
30.
整数は?
31.
整数は自然数を二つ繋げて作れる!
32.
自然数は?
33.
自然数は…
34.
「空集合」から作る!!!
35.
何もないところから数を作る @taketo1024 2015/07/24 第4回プログラマのための数学勉強会
36.
自然数を作るには、 まず自然数とは何かを定める必要がある。
37.
自然数の公理 1. 最初の数 0
N が存在する 2. 任意の a N にはその「次」 a+ が存在する 3. a+ = 0 なる a は存在しない(N は 0 から始まる) 4. a b ならば a+ b+ (a+ は単射) 5. N では数学的帰納法が成立する 以上を満たす集合 N を自然数系と呼ぶ
38.
フォン・ノイマンによる自然数系の構成 として順に作っていく。 1. 0 =
{} (空集合) 2. a+ = a {a}
39.
復習:集合の合併 ={A, B, C}
{D, E} {A, B, C, D, E} ={A, B, C} {} {A, B, C}
40.
• 0 =
{} • 1 = 0+ = 0 {0} = {0} • 2 = 1+ = 1 {1} = {0} {1} = {0, 1} • 3 = 2+ = 2 {2} = {0, 1} {2} = {0, 1, 2} • ... 1. 0 = {} (空集合) 2. a+ = a {a}
41.
• 0 =
{} • 1 = {0} • 2 = {0, 1} • 3 = {0, 1, 2} • ... 1. 0 = {} (空集合) 2. a+ = a {a}
42.
• 0 =
{} • 1 = {0} = { {} } • 2 = {0, 1} = { {}, { {} } } • 3 = {0, 1, 2} = { {}, { {} }, { {}, { {} } } } • ... 1. 0 = {} (空集合) 2. a+ = a {a}
43.
ね、簡単でしょう?
44.
→ 難しい場合は、空集合を 猫
に置き換えて考えましょう。
45.
• 0 =
🐱 • 1 = {0} = { 🐱 } • 2 = {0, 1} = { 🐱, { 🐱 } } 👈 さっきの写真 • 3 = {0, 1, 2} = { 🐱, { 🐱 }, { 🐱, { 🐱 } } } • ... 1. 0 = 🐱 (空集合) 2. a+ = a {a} 簡単でしょう?
46.
はじまりは何でもいいので、 空集合にしとけば何も用意しなくて済むってだけ。
47.
自然数系に順序と演算を入れて行きましょう!
48.
• 0 =
{} • 1 = {0} • 2 = {0, 1} • 3 = {0, 1, 2} • … 集合として 0 1 2 3 … となっている。 を とすれば自然数系には順序が入る。
49.
• a +
0 = a • a + (b+) = (a + b)+ 和 a + b の定義
50.
• a +
0 = a • a + (b+) = (a + b)+ 和 a + b の定義 3 + 2 = (3 + 1)+ = ((3 + 0)+ )+ = (3+ )+ = 4+ = 5
51.
• a 0
= 0 • a (b+) = (a b) + a 積 a b の定義
52.
3 × 2
= (3 × 1) + 3 = ((3 × 0) + 3) + 3 = (0 + 3) + 3 = 3 + 3 = 6 積 a b の定義 • a 0 = 0 • a (b+) = (a b) + a
53.
…何やってんの?w
54.
自然数はアルゴリズムで構成できるということ ふざけたことを…
55.
「空配列」を空集合と見て、 プログラムで実装しちゃいましょう。
56.
struct N: Equatable,
Printable { private let val: [Any] private init(_ val: [Any]) { self.val = val } static var zero: N { return N([]) } } postfix operator + {} postfix func +(n: N) -> N { return N(n.val + [n.val]) } func +(n: N, m: N) -> N { if(m.val.isEmpty) { return n } else { return (n + m-)+ } } func *(n: N, m: N) -> N { if(m.val.isEmpty) { return N.zero } else { return (n * m-) + n } } https://gist.github.com/taketo1024/d60e0b8ba479921f7b16
57.
DEMO
58.
何もないところから自然数が作れました!
59.
作れた後は 0 が空集合だとかいうことは 忘れて、普通の自然数として扱っていい。 (普段プログラミングするときに機械語のこと考えないようなモン) N0
1 2 3 4 5 6 7 …
60.
次、整数 Z を作ります。 (
Z はドイツ語の「数」を意味する Zahlen から)
61.
N-N 0 1 2
3 4 5 6 7-7 -6 -5 -4 -3 -2 -1 N を二つ 0 のところで貼り合わせて、 正負の場合に分けて演算を定義すればいいだけ。
62.
もっとカッコイイやり方: N 0 1 2
3 4 5 6 7 7 6 5 4 3 2 1 N
63.
0 1 2
3 4 5 6 7 もっとカッコイイやり方: 7 6 5 4 3 2 1
64.
0 1 2
3 4 5 6 7 もっとカッコイイやり方: 7 6 5 4 3 2 1 x - y = 0 x - y = 1 x - y = 2 x - y = 3 x - y = 4 x - y = 5 x - y = 6 x - y = 7
65.
0 1 2
3 4 5 6 7 もっとカッコイイやり方: 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 x - y = -1-1-2-3-4-5-6-7
66.
もっとカッコイイやり方: 0 1 2
3 4 5 6 7 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 -1-2-3-4-5-6-7 「直線上に並ぶ点たち」をまとめて一つの整数とすればいい。 👈 (n, 0) が n 0 に対応 (0, n) が n 0 に対応 👉
67.
こうすることで演算が簡単に定まる: 例) 5 -
8 = (5, 0) + (0, 8) = (5, 8) = (0, 3) = -3 例)3 (-2) = (3, 0) + (0, 2) = (3 0 + 0 2, 3 2 + 0 0) = (0, 6) = -6
68.
Z0 1 2
3 4 5 6 7-7 -6 -5 -4 -3 -2 -1 先ほどと同様、もうこの先は普通の真っ 直ぐな整数として扱っていい。 Z は +, , で閉じた「環」になる。
69.
次、有理数 Q を作ります。 (
Q はイタリア語の「商」を意味する Quoziente から)
70.
Z (分子) Z (分母)
71.
Z (分子) 1 Z (分母) 2 34
1/1 = 2/2 = 3/3 = 4/4 = … 2 = 2/1 = 4/2 = 6/3 = … 1/2 「 (0, 0) と (p, q) を結ぶ直線上の点をまとめたもの」が p/q
72.
Z (分子) Z (分母) (p,
q) を q = 1 に射影したものが p/q と考えても良い。 Q (5, 4) 5/4
73.
演算は小学校で習った通りに定義する 例) 2/3 +
3/5 = (2, 3) + (3, 5) = (10, 15) + (9, 15) 👈 通分 = (19, 15) = 19/15 例)3/4 2/7 = (3, 4) (2, 7) = (3 2, 4 7) = (6, 28) = (3, 14) 👈 約分 = 3/14
74.
Q は +,
, , で閉じた「体」になる。 限りなく密に分布しているが、まだ無理数の穴が空いている。 Q
75.
ではいよいよ、実数 R を作りましょう! (
R はもちろん Real Number の R)
76.
Q に空いている無理数の穴はどうやったら埋められるか? Q ⇡ep 2 0 1
2 3 4
77.
Q の中で目標の無理数に近づいていく数列を考える。 Q e 0 1
2 3 4
78.
ex = 1X n=0 xn n! = 1 +
x + x2 2 + x3 6 + x4 24 + ... ほぼチートだが、テイラー展開:
79.
ex = 1X n=0 xn n! = 1 +
x + x2 2 + x3 6 + x4 24 + ... e = 1X n=0 1 n! = 1 + 1 + 1 2 + 1 6 + 1 24 + ... ほぼチートだが、テイラー展開: より、 x = 1 として、 👈 有理数の無限和
80.
e = 1X n=0 1 n! = 1
+ 1 + 1 2 + 1 6 + 1 24 + ... なので、有限部分和を取れば、 a0 = 1 a1 = 2 a2 = 2.5 a3 = 2.666... a4 = 2.708... ...
81.
a0 = 1 a1
= 2 a2 = 2.5 a3 = 2.666... a4 = 2.708... ... Q e 0 1 2 3 4 この数列は Q の中で e に近づいていくので、 この数列のことを e ってことにすればいい。
82.
なんかずるい。
83.
全ての無理数は有理数列の極限として表せるのか?
84.
→ それは知らない。 そもそも「無理数」であることが分かってる数も一部。 ee , e⇡ ,
⇡e などは無理数かどうかまだ知られていない。
85.
じゃあダメじゃん。
86.
人智を超えた「超越的」方法で作る このような有理数列の「全体」を考え、色々な近づき方 でも同じところに落ち着いていくものをまとめたものを、 ひとつの実数ってことにする。 Q e 0 1 2
3 4
87.
カントールの実数論 コーシーが定めた連続・極限の概念を元に、 1872年に「コーシー列」の極限として実数を定式化した。 ゲオルク・カントール (1845 ∼ 1918)
88.
「デーデキント・カット」 Q の「切断」一つ一つを実数ということにする。 Q e 0 1
2 3 4 もうひとつのやり方 切断 リヒャルト・デーデキント (1831 ∼ 1916)
89.
これらの構成法によって作られた「数」は、 「連続性」を満たすことが証明できる(とても難しい)
90.
なぜこんなに難しいのか?
91.
実数の公理 👆 当たり前だと思ってたこの性質がそれだけ特別だから! 1. 四則演算(+,
, , )ができる。 2. 実数同士で大小( )が比較できる。 3. 実数全体はつながっている。
92.
ちなみに R から 複素数
C を作るのは簡単。 R R に (0, 1) (0, 1) = (-1, 0) となる掛け算を入れるだけ。 R iR C z w zw
93.
まとめ φ < N
< Z < Q <<< R 空集合から出発して、順に実数まで構成していくことができた! しかし Q と R の間には、離散と連続の超えがたい壁があった。
94.
まとめ φ < N
< Z < Q <<< R 空集合から出発して、順に実数まで構成していくことができた! しかし Q と R の間には、離散と連続の超えがたい壁があった。 👆 これはどうやって作るの?
95.
「空っぽの集合」は実在するのか?
96.
→ 公理論的集合論 (1908)
97.
公理ばっかりやん…
98.
19世紀以降、 なぜ数学はどんどん公理化されていったのか?
99.
数学の独立と自由のため。 (…と僕は思う)
100.
前提条件を徹底的に明確にする代わりに、 何を前提とするかを選べる自由を得た。
101.
公理系は自由に採用していい(作ってもいい)。 6 + 7
= 1 でも 1 / 0 = でも良い。
102.
ユークリッドの公理を満たさない 「非ユークリッド幾何学」も19世紀に確立された。
103.
厳密な論理の上に広がる自由で創造的な 数学の世界を楽しみましょう…!
104.
Thanks! Twitter: @taketo1024 Blog: http://taketo1024.hateblo.jp