ホテルに泊ままろうと思っても、満室のために泊まれないことがある。満室であれば当然だ。諦めるしかない。ところが、あるホテルでは満室であっても、新たな客を泊めることができるというのだ。
それは、無限個の客室がある「無限ホテル」である。
ある日、1人の旅行客がやってきた。
「あいにく今日は満室なんですよ。でも待って下さい。今泊められるようにしますから」
そういってホテルの支配人は、すでに泊まっている客に対し、1号室の客は2号室に、2号室の客は3号室に、3号室の客は4号室に、すなわち、n号室の客は(n+1)号室に移動してもらった。これで1号室が空き室となり、旅行客は泊まることができたのだ。
別の日もまた満室であったが、今度は50人の団体客を乗せたバスが到着して、今夜泊まれないかと聞いてきた。しかし、これも簡単だ。n号室の客に(n+50)号室に一斉に移ってもらうことで、1号室から50号室までは空き室となったのである。
このように満室時にa人の団体客が来ても、すでに泊まっている客に、(今の部屋番号+a)号室に移ってもらえれば、全員泊めることができるのだ。
別の日、この日もホテルは満室だった。今度は無限人の団体客を乗せたバスがやってきた。今度はどうすればいいだろうか。ホテルの支配人は、1号室の客を2号室に、2号室の客を4号室にと、n号室の客を2n号室に移動させたのである。これで奇数番号の部屋は全て空き室となったので、団体客を順番に、1、3、5、...と、n番目の客を(2n―1)号室に泊めればよいのである。
よほど流行っているホテルなのか、この日もまた満室だった。今度は、無限人の団体客を乗せたバスが無限台やってきた。でも安心だ。みんな泊まることができる。
a号車のb席に乗っていた客を(2^a×3^b)号室に泊めることとすればよい。すでに泊まっていた客は「0号車」に乗ってたということとし、(2^0×3^b)号室(bはそれまで泊まっていた部屋番号)に移ってもらえれば、既存の客も新たな客も、全員が重複することなく泊まることができるのである。正の整数は素因数分解の一意性が成り立つからである。(しかもこの方法では、5号室、7号室など、2でも3でも割り切れない番号の部屋は空き室になる。ホテル的には空き室ばかりになるのは...)
実は他にも、満室時に無限人の乗った無限台のバスの客を全員新たに泊める方法はいくつもある。たとえば、すでに泊まっている客を全員、n号室から2n号室に移して奇数号室を空け、1号車のn番目の客を3n号室に、2号車のn番目の客を5n号室にと、a号車のn番目の客を(「a番目の奇素数」×n)号室に泊めれば、これでもみんなが泊まることができるのだ。素数同士は互いに素であり、これらに重複はないからである。
さらに、無限人の乗った無限台のバスが無限隻のフェリーに乗ってやってきた場合はどうだろうか。これも簡単だ。無限の階層が増えれば、上記の方法で新たな素数を追加すればよいのである。
それでは、満室時にどんな団体客が来ても新たに泊めることができるだろうか。別の日、この日もまたまた満室だった。今度は2人組の客がそれぞれ2台の車でやってきて、それが2隻のフェリーでやってきて、それが2隻の巨大フェリーでやってきて、それがさらに...と、無限の階層になってやってきた。ここでついにこのホテルは新たな客を泊めることができなくなるのである。
無限人の客が有限回入れ子になっている場合は新たな空き室を作れるが、各階層の客が有限人だったとしても無限回入れ子になっている場合はそうはならないのである。
これは「ヒルベルトの無限ホテル」といわれるものでで、有限集合と無限集合では性質は全く異なることを示し、「無限ホテルのパラドックス」とも呼ばれる。
新たに泊めることができたケースは、可算無限という無限であり、自然数全体の集合と一対一対応(全単射)が存在する。つまり、1、2、3、...と全ての要素を数え上げることができる無限である。これは、直観に反するところもあるだろう。自然数全体の集合は正の偶数全体の集合を真部分集合として含む。しかし、両者は一対一対応は可能であり(nと2n)、どちらも同じなのである。ある集合と真部分集合が同じという、有限集合では有り得ないことが起きるのである。なお、可算無限は「最も小さい無限」である。先ほどのホテルが破綻した例は、実数全体の集合になり、これは非可算無限であり、可算無限より「大きい」無限である。無限にも大小があるのだ。
というお話しでした。
ログインしてコメントを確認・投稿する