math: 集合と群 (1)
2025/05/14
はじめに
一度はスルーしたものの、クリーンコードクックブックに出てきた”全単射”と”同型写像”という言葉が気になった。
なんとなく全単射はわかる気がしている。
y = f(x)
みたいな式があって、f(x)
が単純な比例だと f(x)
の結果 y
は 1つしかないし、その y
に当てはまる x
も 1つしかない。
2次曲線や楕円曲線みたいに 1つの x
に対して y
が複数あったり、その逆だったりのタイプは全単射ではないことになる。
自信はないがわかったことにするとして、同型写像がわからん。
Wikipedia の説明も分からんし、本には「全単射かつ構造を保持する」とあるのだが、何が何やら。。。
今回だけならよいのだけど(よくはない)、たまにこの手の言葉が出てくる。
そのたびに思考が止まるし、なによりまったく分かってないという状態が哀しい。
付け焼き刃で理解できるものでもなかろうが、
最初はこちらのサイトで群論を調べていたのだけど、 だんだんわかるようなわからないような気持ちになってきた。
これで読み進めてもよろしくなかろうということで集合の方を調べることにした。
集合
集合論とか群論とかだと思うのだが、違いがよくわからん。
こちらは 30ページほどの PDF である。
例も挙げてあり、記号の意味も説明してあるので読むために他で調べたりしなくてよいのがうれしい。
自然数の集合に対しては+(プラス)は”演算”に入っているが、ー(マイナス)は負の数になることがあるので”演算”に入っていないそうだ(整数全体であれば演算に入る)。
そういう考え方をするのか、という例があるのもうれしいところだ。
ただ、だんだんだまされている気持ちになってしまう。
数学的な定義なので仕方ないのだが、a - b
の a
と b
は自然数に属するが a - b
は整数全体に属することにする、みたいな定義ができるからだろう。
uint
同士の演算の結果を int
で受け取ると思えば、プログラミングする人の立場からすれば自然か。
といっても、やはり簡単ではない。
有理数の集合Q
が除法で閉じているかどうか(a / b
の結果もQ
に含まれるかどうか)辺りから理解できたか心配になってきた。
有理数 は分母がゼロ以外の整数の除算の結果で得られる全体の集合。
といってもゼロ割はダメなので1 / 0
はQ
に含まれない。だからQ
は除法で閉じていない、だそうだ。
あれ、さっきQ
の定義をするときに分母はゼロにしないようにしたんじゃないの、と思ったけど、それはそれということだろうか。
ここまでで、有理数は実数のことかと思っていたのだが、違った(2.2章)。 そして急に難しくなってきた。。。