数学では、2 つの無限大は等しくなく、それよりも大きくも小さくもありません。それで、何が得られますか?
irbでは、 Float::INFINITY == Float::INFINITY (ruby 1.9.3でテスト済み)
より技術的に言えば、すべては浮動小数点演算の IEEE 754 標準に帰着します。
IEEE 754 標準では、暗黙的に Infinity == Infinity を true と定義しています。標準の関連部分はセクション 5.7 です。「[2 つの IEEE 754 値の間で] 4 つの相互に排他的な関係が可能です: より小さい、等しい、より大きい、順序付けされていません。最後のケースは、少なくとも 1 つのオペランドが NaN の場合に発生します。」
浮動小数点値の任意のペア間では、これら 4 つの関係のいずれかが真になります。したがって、Infinity は NaN ではないため、Infinity はそれ自体に関して順序付けされていません。(Infinity < Infinity) と (Infinity > Infinity) のいずれかを true にすることは一貫性がないため、(Infinity == Infinity) になります。
これはhttp://compilers.iecc.com/comparch/article/98-07-134から取られたものです
ほとんどの集合論には複数の異なる無限大が存在しますが、実数で表される無限大は通常、拡張実数直線の無限大を表します。ここで、+∞ と -∞ は、すべての実数より大きく、小さくなるように特別に選択された値です。この設定では、∞ = ∞ および -∞ = -∞ です。
等しくないセット理論上の無限大は基数または序数であり、通常は浮動小数点値では表されません。これらはそれぞれセット内のサイズと位置を測定するため、整数型などの別の型の一般化として適しています。これらの種類の値を格納したい場合は、無限の序数または無限の基数を表すカスタム型が必要になるでしょう。
また、集合論上の無限大が互いに等しくなることは間違いなく可能です。たとえば、ℵ 0 = ℵ 0です (ただし、 ℵ 0 ≠ ℵ 1 )。
お役に立てれば!
最新のコンピューターのほとんどは、IEEE 浮動小数点を使用して実数を表します。これらは実数ではなく、実数の近似値を提供します。特に、すべての無限値を表す 2 つの値、+infinity と -infinity があります。.1 または 1/3 を 2 進数で完全に正確に表すことができないのと同様に、無限大は近似値です。
したがって、すべての + 無限大は互いに等しく、すべての - 無限大は互いに等しくなります。