ヒルベルトのグランドホテルのパラドックス (通称無限ホテルのパラドックスまたはヒルベルトのホテル)は、無限集合の直感に反する性質を示す思考実験です。これは、無限に多くの部屋を持つ満室のホテルでも、さらに無限の数の宿泊客を受け入れることができ、このプロセスは無限に繰り返される可能性があることを示しています。このアイデアは、デイヴィッド・ヒルベルトが1924年から1925年にかけて行った講演「無限について」[ 1 ]で紹介され、ジョージ・ガモフの1947年の著書「 1、2、3…無限」 [ 2 ] [ 3 ]で広く知られるようになりました。
ヒルベルトは、部屋番号が1、2、3…と上限のない仮想のホテルを想像した。これは可算無限個の部屋と呼ばれる。最初はすべての部屋が埋まっているが、それでも新しい宿泊客が到着し、それぞれが自分の部屋を期待する。通常の有限のホテルでは、すべての部屋が満室になると新しい宿泊客を受け入れることはできない。しかし、無限ホテルでは、既存の宿泊客と新規の宿泊客(たとえ無限の数であっても)がそれぞれ自分の部屋を持つことができることが示される。
宿泊客が1人増えた場合、無限に多くの宿泊客が同時に部屋を移動すれば、ホテルは既存の宿泊客と新しい宿泊客の両方を収容できます。現在1号室にいる宿泊客は2号室へ、2号室にいる宿泊客は3号室へ、といった具合に、すべての宿泊客を現在のn号室からn +1号室へ移動させます。無限のホテルには最後の部屋がないため、すべての宿泊客には移動する部屋があります。その後、1号室は空室となり、新しい宿泊客をその部屋に移動させることができます。この手順を繰り返すことで、有限個の新しい宿泊客を受け入れることができます。一般に、k人の宿泊客が部屋を探している場合、ホテルは同じ手順を適用して、すべての宿泊客をn号室からn+k号室へ移動させることができます。

また、可算無限の数の新しいゲストを受け入れることも可能です。部屋1にいる人を部屋2に移動させ、部屋2にいるゲストを部屋4に移動させ、一般に部屋nにいるゲストを部屋2n ( nの2倍)に移動させれば、すべての奇数番号の部屋(可算無限)が新しいゲストのために空くことになります。
可算無限個の客車にそれぞれ可算無限個の乗客を乗せる方法はいくつかあります。ほとんどの方法は、客車の座席がすでに番号付けされている(または可算選択公理を使用する)ことを前提としています。一般に、この問題を解くには任意のペアリング関数を使用できます。これらの各方法について、客車の乗客の座席番号を次のように考えます。コーチ番号は数字そしてそれらはペアリング関数の 2 つの引数に渡されます。
ゲストを部屋に案内する部屋へそして最初の客車の荷物を部屋に運び入れる2番目の客車の客室数一般的にコーチ番号私たちは部屋を使用しますどこは奇数の素数。この解決策では、特定の部屋が空室になります(ホテルにとって有用である場合もそうでない場合もあります)。具体的には、 15 や 847 など、素数のべき乗ではないすべての数字は、もはや使用されなくなります。
厳密に言えば、これは到着者数が空室数以下であることを示しています。しかし、全射(例えばバスの番号への写像)を用いることで、到着者数が空室数以上であることも容易に示せ、したがって、空室があるにもかかわらず、到着者数と空室数は等しいことが分かります。
アルゴリズムは、そしてしかし、どちらの選択をするにしても、それは全体を通して一律に適用されなければならない。
特定の席の各人そしてコーチ部屋に置くことができます(既にホテルにいる人についてはc = 0、最初のバスについては 1 などと仮定します)。すべての数字は一意の素因数分解を持つため、全員が部屋を与えられ、2 人が同じ部屋になることはないことが容易にわかります。たとえば、2592 号室の人は ()は4両目の客車の5番目の席に座っていた。素数のべき乗法と同様に、この解法でも特定の部屋が空席となる。(特に、2と3以外の素数で割り切れる数を持つ部屋はすべて空席となる。)
この方法は、無限の日付、無限の入場などにも簡単に拡張できます。)、素数は無限に存在するため。各数には固有の素因数分解があるため、これによりすべての部屋が埋まります。
各乗客について、そして10進数などの任意の位取り記数法で表記します。(各ホテル宿泊客は0号車に乗っているものとします。)どちらかの数字が短い場合は、両方の値の桁数が同じになるまで先頭にゼロを追加します。数字を交互に並べて部屋番号を作成します。部屋番号の桁は、[車両番号の最初の桁]-[座席番号の最初の桁]-[車両番号の2番目の桁]-[座席番号の2番目の桁]-…となります。部屋番号1729のホテル(車両0)の宿泊客は、部屋番号01070209(つまり、部屋番号1,070,209)に移動します。車両番号789の座席番号1234の乗客は、部屋番号01728394(つまり、部屋番号1,728,394)に移動します。2つの番号の役割は、一貫して適用される限り、逆転させることができます(座席番号が奇数で車両番号が偶数)。
素数のべき乗による解法とは異なり、この解法ではホテル全体を完全に埋めることができ、インターリーブ処理を逆に行うことで、ゲストの元の車両番号と座席番号を再構築できます。手順は次のとおりです。まず、部屋の桁数が奇数の場合は先頭にゼロを追加します。次に、番号を2つの番号に分解します。車両番号は奇数桁で構成され、座席番号は偶数桁で構成されます。
既にホテルに滞在している方は、別の部屋に移動されます。または番目の三角数。コーチに乗っている人は部屋に入りますまたは三角数プラスこうすることで、すべての部屋には必ず1人ずつ、合計2人の宿泊客が入ることになります。そして、この手順を逆に行うことで、元の客車と座席を特定することができます。
このペアリング機能は、ホテルを奥行きが1部屋、高さが無限に高いピラミッドとして構造化することで視覚的に説明できます。ピラミッドの最上段は1部屋(部屋1)で、2段目は部屋2と部屋3、といった具合です。右端の部屋で構成される列は、三角数に対応します。これらの部屋が(ホテルの宿泊客によって)埋まると、残りの空室は元のピラミッドと全く同じ形になります。したがって、帰納法により、このプロセスを各バスに対して繰り返すことができます。各バスに対して1つずつこの作業を行うと無限のステップが必要になりますが、前述の公式を使用すれば、各宿泊客は有限のステップで自分の部屋番号を計算し、そこへ行くことができます。
させて。は可算名詞です。は可算であるため、その要素を列挙することができる。.今もし割り当てるの 番目のゲストコーチからth 室 (既にホテルに滞在しているゲストをゲストとみなす)( th コーチ)。このようにして、各人を部屋に割り当てる関数ができました。さらに、この割り当てでは部屋を飛ばすことはありません。
ホテルが海に面していて、無限の数のカーフェリーが到着し、それぞれのフェリーには無限の数のバスが積まれ、それぞれのバスには無限の数の乗客が乗っていると仮定します。これは3つの「レベル」の無限を含む状況であり、これまでの解法のいずれかを拡張することで解決できます。
素因数分解法は、無限の層ごとに新しい素数を追加することによって適用できます(、 とフェリーの番号)。
素数のべき乗法は、素数をさらにべき乗することで適用でき、入力値が小さくても非常に大きな部屋番号が得られます。例えば、2番目のフェリーの3番目のバスの2番目の座席(住所2-3-2)に座っている乗客は、2番目の奇素数(5)を49にべき乗します。これは、3番目の奇素数(7)を座席番号(2)でべき乗した結果です。この部屋番号は、10進数で30桁を超える値になります。
インターリーブ方式は、2本ではなく3本のインターリーブされた「ストランド」で使用できます。住所が2-3-2の乗客は232号室に行き、住所が4935-198-82217の乗客は008,402,912,391,587号室に行くことになります(先頭のゼロは削除できます)。
無限のゲストが何層にも重なる可能性を想定し、ホテルは、後から何人のゲストが到着しても、どのゲストも移動する必要がないように部屋を割り当てたいと考えるかもしれません。一つの解決策は、到着したゲストの住所をバイナリ数に変換することです。このバイナリ数では、各層の先頭に1を区切り文字として使用し、特定の層内の番号(ゲストのバス番号など)は、その番号と同じ数の0で表されます。したがって、以前の住所が2-5-1-3-1(5つの無限層)のゲストは、10010000010100010(10進数で295458)の部屋に行くことになります。
このプロセスにおける追加ステップとして、数値の各部分からゼロを1つずつ削除することができます。この例では、ゲストの新しい部屋番号は101000011001(10進数で2585)となります。これにより、すべての部屋が仮想のゲストによって埋まる可能性があることが保証されます。ゲストが無限に集まらない場合は、2のべき乗の数の部屋のみが占有されることになります。
ヒルベルトのパラドックスは、真理のパラドックスである。つまり、直感に反する結果をもたらすが、それは証明可能な真実である。「すべての部屋に客がいる」という命題と「これ以上客を収容することはできない」という命題は、部屋が無限にある場合には同値ではない。
このパラドックスは、無限集合の性質が有限集合の性質と大きく異なるため、直感に反する。これはカントールの超限数論を用いることで理解できる。したがって、複数の部屋を持つ通常の(有限の)ホテルでは、奇数番号の部屋の数は明らかに部屋の総数よりも少ない。しかし、ヒルベルトのグランドホテルでは、奇数番号の部屋の数は部屋の総数よりも少なくない。数学的に言えば、奇数番号の部屋を含む部分集合の濃度は、すべての部屋の集合の濃度と同じである。実際、無限集合は、同じ濃度の真部分集合を持つ集合として特徴付けられる。可算集合(自然数と同じ濃度を持つ集合)の場合、この濃度は[ 4 ]
言い換えれば、任意の可算無限集合に対して、たとえその集合が自然数を含んでいたとしても、その集合を自然数の集合に写像する全単射関数が存在する。例えば、有理数の集合(整数の商として表せる数)は、自然数を部分集合として含むが、有理数は可算集合であるため、自然数の集合よりも大きくなることはない。つまり、自然数から有理数への全単射が存在する。