論理クイズ「幼女とライバルの分割」にグラフ理論は必要なかった

問題

幼女たちには、1名につき最大3人のライバルがいる。

「AのライバルがB」なら「BのライバルもA」になる。

いま、この幼女たちを2グループに分けて、どの幼女も「同じグループ内にいるライバルは最大1人」という状態にしたい。

幼女たちをどのようにグループ分けすればよいだろうか?

さあ、解いてみよう!

シンプルな問題ですが、なかなか手応えがあります。

あらゆる場合分けを考えていたら時間が足りません。

注目すべきポイントはどこか。

少し下にスクロールすると答えがあります。

 

 

 

 

正解

  1. 全員をランダムにAグループとBグループに分ける
  2. Aグループ内にいる「ライバルが2人以上」の幼女をBグループに移動させる(候補が複数の場合はランダムで選ぶ)
  3. その後、Bグループでも同じことを行う
  4. 手順2,3をくりかえせば、最終的に全員が「同じグループ内にいるライバルは最大1人」という状態になる

解説

ライバルの特性

1回で目的を達成するのは困難です。
長期的に考えましょう。

「1人の幼女は最大3人のライバルを持つ」という前提から、幼女は4種類に分類されます。

  • ライバルがいない幼女
  • ライバルが1人いる幼女
  • ライバルが2人いる幼女
  • ライバルが3人いる幼女

「ライバルがいない幼女」「ライバルが1人いる幼女」に関しては無視しても構いません。

「同じグループ内において幼女は最大1人のライバルと同居できる」ことが前提だからです。

ライバル数が0,1の幼女たちは、いつ、どのグループにいても問題ありません。

厄介なのは「ライバルが2人いる幼女」「ライバルが3人いる幼女」。

「彼女たちをどう分けるか」が本問の趣旨になります。

手順を追う

まず、全幼女をテキトーに2グループに分けます。
仮に「Aグループ」「Bグループ」と名前をつけましょう。

次に、Aグループ内にいる「ライバルが2人以上いる幼女」をBグループに送り込みます。
このとき、候補が複数いたらランダムで1人を選びます。

たとえば「ある4人組の幼女がいて全員が自分以外の幼女とライバル」という場合、「ライバル3人の幼女」がその組内で4人いることになります。
こんな時はとりあえず誰か1人を選んでBグループに送ります。

これでOKです。

つづいてBグループで「ライバルが2人以上いる幼女」をAグループに送り込みます。

これを延々と繰り返します。

最終的に、幼女全員が「同じグループ内にいるライバルは最大1名」という状態になり解決します。

なぜそれで上手くいくのか

当然の疑問となるのが、「その手順で上手くいく理由」。

ひとつずつ考えていきましょう。

やっていることは、「ライバルが2人以上の幼女」をグループ間で移動させまくって、全員が「多くともライバルが1人の幼女」だけにすること。

「ライバルが1人以下」になった時点でその幼女は移動のループから外れるため、この方法を行えばいつかは必ず目標に到達できます。

ここで、「任意の幼女が移動をくりかえしてもライバルが減らない状況」ありえないと証明できればいいわけです。

「移動を繰り返してもライバルが減らない状況」とはすなわち、

  1. グループを移動する時、ライバルも一緒についてくる
  2. どちらのグループにもライバルが2人いる

のどちらかです。

前者の可能性は「候補が複数いたらランダムで1人を選んで移動させる」という手順で最終的に無効化できます。
同じ組内でライバル関係が入り乱れている場合、そのうちの1人を選んで移動させる––ということをくりかえしていけば大丈夫です。

後者については、前提から可能性が否定されています。
1人の幼女が持てるライバルは最大3人。
「どちらのグループにもライバルが2人いる」状況は「ライバルが4人いる」ことを意味しているため、ありえません。

そんな感じで、最後には必ず「同じグループ内にはライバルが最大1人しかいない」ようなグループ分けが可能になります。

参考

問題の初出は1979年の第13回全ソ連数学オリンピック。

13th ASU 1979 problems

Find minimum number of groups such that no enemies in same group

Each person has at most 3 enemies in a group. Show that we can separate them into two groups where a person will have at most one enemy in the group.

reducing enemies – geometry puzzle

140字以内の問題文

幼女たちには、1名につき最大3人のライバルがいる

「AのライバルがB」なら「BのライバルもA」になる

今この幼女たちを2グループに分けて、どの幼女も「同じグループ内にいるライバルは最大1人」という状態にしたい

幼女たちをどのようにグループ分けすればよいだろうか?