平成26年度 春期 ITパスポート試験 公開問題 問63 解説 順列と組合せ
a,b,c,d,e,fの6文字を任意の順で1列に並べたとき,aとbが隣同士になる場合は,何通りか。
- ア 120
- イ 240 ✓ 正答
- ウ 720
- エ 1,440
解説
効率的な計算手順
この問題を解くコツは、条件付きの並び替えを「塊(かたまり)の考え方」で整理することです。以下の2ステップで計算します。
- 隣り合うaとbを1つのセット(1つの文字)とみなします。すると、全体は{(ab), c, d, e, f}の合計5つの要素を並べることになります。5つのものを一列に並べる並べ方は 通りです。
- 塊の中での並び順を考慮します。aとbは「ab」の順か「ba」の順かの2通りあります。したがって、全体の並べ方は 通りとなります。
並び替えの基本と塊の考え方
今回の問題で使った「階乗(!)」と「塊の考え方」は、順列における基礎的な概念です。
階乗とは、異なる 個のものを一列に並べる場合の数を示します。今回のように全体の数を減らしたり、特定の条件を加えたりする場合、対象をグループ化して考える手法は、複雑な組み合わせを解くための定石です。
もし「aとbが隣り合わない」場合を求めたいときは、全体から今回の答え(隣り合う場合)を引くという「余事象」の考え方を用いることも可能です。このように、問題の構造を分解して整理するスキルは、数学的なパズルだけでなく、システム開発におけるアルゴリズム設計の基礎思考に通じます。
IT実務における並び替えの応用
ITパスポート試験において、この種の計算問題は直接的には確率統計の基礎を問うものですが、実務では以下のような場面でこの考え方が活用されます。
データ処理やデータベースの設計において、特定の条件を満たす組み合わせを算出することは、効率的な検索アルゴリズムやデータの並べ替え(ソート)に関係します。たとえば、Webサイトの表示順序を決定するロジックや、複数のタスクを処理する際のスケジューリングにおいて、特定の条件を満たすパターンを列挙・予測する能力は、システムのパフォーマンスを最適化するための第一歩となります。
複雑なルールがある中で「何通りのパターンが存在するか」を素早く見積もる能力は、システムエンジニアが仕様の実現可能性や計算コスト(時間計算量)を直感的に判断する際にも役立ちます。