数学A / 場合の数

完全順列(プレゼント交換)

★★★ 応用完全順列包除原理

問題

4人 A, B, C, D がそれぞれ1個ずつプレゼントを持ち寄り、よくかき混ぜてから1人1個ずつ配り直す。全員が自分の持ってきたプレゼント以外を受け取る配り方は何通りあるか。

ヒントを見る

『全員が自分以外を受け取る』は直接数えにくい。全体から『少なくとも1人が自分のを受け取る』を引く — 何人が自分のを受け取るかで足し引き(包除)する。

解答・解説

方針

「全員が自分のものを受け取らない」順列を、完全順列(かく乱順列)という。

正面から数えるのは難しいので、裏返して数える。全体の配り方 から、「少なくとも1人が自分のものを受け取る」場合を引く。

ただし、2人以上が自分のものを受け取る場合を引き過ぎるので、符号を交互にして足し引きする。これが包除の考え方だ。

解答

⓪ 発想 — どう考え始めるか。 「全員が自分の以外」を正面から数えるのは難しい。

そこで補集合に切り替える。「少なくとも 人が自分のを受け取る」場合を、全体から引く。

ただし「 人が自分の」という場合どうしは重なり合う。重なりを足し引きする包除で調整する。

否定の数え上げは、補集合と包除の合わせ技で攻める。その定跡を総合する問題だ。

重要包除原理:「まずい場合」を足しすぎ・引きすぎに注意して交互に加減する

全員が自分以外を受け取る配り方を、包除の考え方で数える。「自分のものを受け取ってしまう」という『まずい』場合を引いていく。

特定の 人が自分のプレゼントを受け取り、残り 人は自由、という配り方は 通り。これを について、符号を「引く→足す→引く→足す」と交互にして全体から差し引く。

符号が交互になるのは、「1人が自分のを受け取る場合」を引くと「2人が受け取る場合」を引き過ぎるので足し戻し、するとまた「3人」を戻し過ぎる…という調整が続くからだ。

まとめ:4人くらいなら、実際に樹形図で書き出しても9通りと確かめられる。「Aが受け取る相手はB, C, Dの3通り、その1つ1つに対して残りの配り方が3通り」で 通り、という数え方もできる。

発展 — 一歩先へ。 通りの中身を「入れかわりの形」で分類すると、構造が見えてくる。全員が自分以外を受け取る配り方は、じつは つの型しかない。

つは「 人ずつのペアが交換する」型。 人を 人ずつのペアに分ける方法は 通りで、各ペアの中で交換するだけだから、この型は 通り。

もう つは「 人がひとつの輪になって順送りする」型。 のような一巡の並べ方は 通り。合わせて で、数え上げの結果とぴたり一致する。

この「交換のペア」と「順送りの輪」への分解は、並べかえ(置換)をサイクルという部品に分ける見方で、あらゆる並べかえがサイクルの組み合わせに分解できる。完全順列とは「長さ のサイクル(動かない人)がない置換」のことだ、と言い直せる。

9通り

別解

別解 — 小さい人数から漸化式で積み上げる(得意な人向けの視点)。 包除を使わず、人数を増やしながら数える。

人の完全順列の個数を とする。 人だけなら自分に配るしかなく 人なら入れ替える 通りで

人のとき、 番の人が受け取る相手を とすると、 の選び方は 通り。このとき「 番も 番のものを受け取る(= が交換する)」なら、残り 人の完全順列で 通り。「 番は 番のを受け取らない」なら、残り 人を「それぞれ決まった 席を避けて」座らせる完全順列とみなせて 通り。

まとめると

順に計算すると 。本解の包除と同じ 通りだ。

ポイント

  • 完全順列 = 全員が自分のものを受け取らない順列
  • 裏返し + 包除で、符号を交互に足し引きする
  • (4人の完全順列は9通り)

よくある間違い

  • 包除の符号を交互にせず、 だけで引いて止めてしまう。
  • 「ちょうど 人が自分のを受け取る」場合を固定するとき、その 人の選び方 を忘れる。
  • 自分のを受け取る人数で正面から場合分けを始め、補集合に切り替えられずに手が止まる。