パズルか数学か、それともアルゴリズムか(その1)

難しい(かも知れない)話、第2弾です。一応、前回の話よりは取っ付き易いと思います。


集合Xがあったとします。この集合には要素a_1,a_2,…,a_nという、n個の要素が属しています。
ここで、集合Xに属する任意の2つの要素(A,Bとします)に対し

  • AよりBのほうが大きい
  • AとBは等しい
  • BよりAのほうが大きい

のうちどれかが必ず成立するものとします。
このとき、Xの要素を適切に並び替えることで、「全ての要素を大きい順に並び替えること*1」は可能でしょうか?


答えは…






可能とは限りません。反例を挙げますと…

  • 集合Xの要素:「グー、チョキ、パー」
  • 要素同士の大小は「じゃんけんにおける勝敗」で定める

このとき、集合Xの要素を「完璧に、強い順に」並べることが不可能であることは明らかでしょう。
なぜ不可能かということですが…本質的には上で述べたような「並べ替え」が「きれいに」行えるためには、「比較する」という操作が、次のような条件を満たしていないといけない、ということになります。すなわち

AよりBが大きく、BよりCが大きいならば、AよりCが大きくなければならない。

この性質*2を「比較」に対する前提条件に組み込まないと、「きれいに並べ替える」ことはできません。


以上が前フリその1です。多分続きます。…多分。(汗)

*1:数学的に正式に記述することは可能ですが、話を取っ付き易くするために敢えて書きません。

*2:「推移律」と呼ばれます。