2つの正の数の文字列表現 a, b が与えられた時に、それらを結合した ab, ba のどちらが数として大きいかを判定する。 これには ab, ba を数として、あるいは辞書順で比較すればよいが、循環小数 0.(a), 0.(b) を比較しても ab, ba の大小を判定できる。 以下はこの事の(無用に複雑な)理由付け。

a が b の接頭辞であり、b は a の1回以上の繰り返しである場合(ab = ba)。

  • b = a… で、0.(a) は 0.(aa) 0.(aaa) … に等しいので、0.(b) に等しい。
  • したがって、0.(a) と 0.(b) を比較しても同じ結果になる。
  • a と b の関係が逆の場合も同様。

a が b の接頭辞であり、b は a の1回以上の繰り返しに r が残る場合。

  • b = a…r とすると ab 対 ba は、aa…r と a…ra を比較することに等しい。
  • これは(先頭の a… を無視して) a と r をどちらか短い方の長さまで比較すれば a と ra を最大でも a の長さまで比較すれば決定できるので、0.(a) 0.(a…r) を比較しても同じ結果になる。
  • a と b の関係が逆の場合も同様。

それ以外の場合。

  • a と b のどちらか短い方の長さまで比較すれば判定できるので、
  • 0.(a) と 0.(b) を比較しても同じ結果になる。

以上。

なお、代数的にもっと簡潔な証明ができる。

追記:

間違ってた……。