はじめMath! Javaでコンピュータ数学

第48回 確率の数学 順列と組合せ [前編]

この記事を読むのに必要な時間:およそ 2 分

組合せ

組合せ※4とは,異なるn個のものの中からk個を取り出した場合の数のことです。取り出す順番,並べる順番は問いません。先ほど同様,3つの玉を用いて,3つの玉の中から3つを取り出す組合せを調べてみましょう。

図48.4 3つの玉の中から3つを取り出す組合せ

図48.4 3つの玉の中から3つを取り出す組合せ

おや,そのような場合は1つしかありませんね。組合せの数は順列よりは少ないですね。

図48.2を見ると,3つの玉から3つを取り出す順列は6通りありました。しかし,順番を考えなければ,これらは全て同じ場合,すなわち重複する組合せです。同じ場合が6通りありますから,次の式のように考えることが出来ます。

さて,もうひとつ別の場合を考えてみましょう。5つの玉から3つ選ぶ組合せはどうなるでしょう。

図48.5 5つの玉の中から3つを取り出す組合せ

図48.5 5つの玉の中から3つを取り出す組合せ

この図のように,考えられる組合せを全て列挙しても良いのですが,組合せの数が欲しいだけならば理論的に求めたいものです。何より玉の数が多くなれば列挙するのは現実的ではありません。次に組合せの数を理論的に求めてみましょう。5つの玉から3つ選ぶ順列から,同じ組合せを除外すれば良いのです。3つの玉の順列は,先ほど求めたとおり6通りです。これで筋道がつかめました。

5つの玉から3つ選ぶ組合せは,5つの玉から3つ選ぶ順列の数を,3つの玉の順列の数で割ってやれば良いことがわかりました。

3P3を計算するためには0!=1が必要ですね。

以上の式操作の結果,場合の数の総数は10であることがわかりました。1つ1つの場合を数え上げ,重複する場合を消去していくのが一番確実なのですが,60通りもある順列の中の重複をチェックするのは,いやですよね。式で求められれば,こんなにありがたいことはありません。さて,教科書で見るようなnCkの公式はどうすれば得られるでしょうか。

式48.19を次のように操作します。

式48.26は教科書で見ることが出来る順列と組合せの関係式ですね。これを記憶しておけば,組合せの公式を覚えておく必要はないでしょう。

※4)
combination

今回はここまで

今回は,順列と組合せの最も基本的な考え方と,P記号・C記号の意味と式を紹介しました。

多くの場合,専門分野ごとに公式集という書籍があり,公式集を見ればわざわざ導かなくとも正しい式を知ることができます。専門家にとって,そのような書籍と,その式が載っているということを知っていることが大事です。仕事に当たっていちいち式を導くなんてやっていられないからです。しかし,いざ仕事に変化が生じた場合,公式では対応ができない状況が起きます。公式を場合にあわせて変形しなければならないのです。そうしたとき,公式が導かれた意味・経緯を知らなければ対応できません。

プログラマは,あらゆる分野に精通しているわけではありませんが,あらゆる分野のソフトウエアを作ることを要求されます。そんなときに,今回紹介したような,式の導出操作が役に立ちます。式の背景にある情報こそ,正しく目的通りに動作するソフトウエア作りに必要だからです。手数がかかっても,式の導出・変形のチャンスあるごとに丁寧にこなしておくようにしましょう。

今回のまとめ

  • 順列と組合せの意味と計算方法を確認しました。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。