プログラムで場合の数の問題がしばしば出てくるので
数学の順列の問題の解き方整理。
(1)ある場合の数からある条件を含まない場合を求めたいときは
それぞれの場合の数をもとめて集合の排他を計算する。
(例)0,1,2,4を並べて4ケタの数をつくる =4!-3!
(2)a<b<c<dからa,b,c,dを選ぶ場合の数はC,組み合わせ順列に帰着できる。
逆にこの形に変換できれば組み合わせ順列の適用が可能。
(例)1~9の数字から重複を許して4回数字を選び、
その数字がa<b<c<dとなるようにする
(3)人を一列に並べるなど、人を扱う順列の場合は区別するのでPで計算する。
(例)男子5人、女子3人を一列に並べる
(4)隣り合う場合はそのパターンを一つとみなす、
隣り合わない場合はその他の要素の間に入れる
(例)AさんとBさんは隣り合う→「AB」を一人とみなす
(例)男子が隣り合わない→女子の間に入れる
(5)単純な順列計算ができないときは場合分けを行う。
かつ、その中で重複がないようにする。
(例)1~4の数字から重複を許して5回数字を選び5ケタの数字を作る。
このうち12の並びとなる場合の数を求める。