3章 場合の数 集合、数学のおさらい


今回は場合の数から始めてみます。

前回確率計算してるんやから、戻るような事せんでもいいんちゃう?と思われる方もいらっしゃるでしょうが、次に進むのに場合の数と集合は避けては通れまへん。


場合の数とは、階乗、順列、組み合わせなどの事ですが、みなさんは既に一度は学習されていると思いますので、円順列とか重複組み合わせとか、そうした細かいところには踏み込まずに、確率計算式に必須なところをだけをサラッと流したいと思います。


ジョーカーを除く52枚のトランプから1枚を抜き取った時に絵札を引く確率はInftyProjectですので約分してInftyProjectですね。

では、52種類のアイスからどれでも3つ自由に選べるとしたら、あなたが選んだアイスは何分の1の確率になるでしょう?

数学の問題っぽく「必ず3つ選ぶものとして同じ種類は選べない」と条件をつけてみます。


これはトランプと違って分母の数は簡単には出てきません。

ここで、何通り、という組み合わせの計算をしないと分母が出せないわけです。

52種類から3つを選ぶので、InftyProjectを計算して、22,100通りが分母になります。

ですので確率はInftyProjectになります。

この計算式を記号にするとInftyProjectでしたね。


学校ではないので、これを手計算する必要はありません。

Rならchoose(52,3)と入力すれば計算できます。

Excleなら=COMBIN(52,3)です。

関数電卓でも、組み合わせの計算機能はほとんどの機種に付いてきます。

普通の電卓では少しツライ計算になると思います。



さて、最初の章でサイコロを6回振っても1の目は100%でるものではなく、66.5%程度と書きました。

そのときの公式をInftyProjectと紹介しました。

ここにも出てきていますが、 InftyProjectという記号はのCはCombinationの頭文字だそうです。


最初の章では実際の計算をしていなかったので、ここで改めてやってみましょう。

サイコロ6回振って1回だけ1が出るというケースでは、InftyProjectですね。2回ならInftyProjectです。

1回以上1が出るという条件であれば6回出ることもあるので、InftyProjectまであり得ます。


1つのサイコロを6回振って1の目が1回出る確率 InftyProject0.4018776

1つのサイコロを6回振って1の目が2回出る確率 InftyProject0.200939

1つのサイコロを6回振って1の目が3回出る確率 InftyProject0.053584

1つのサイコロを6回振って1の目が4回出る確率 InftyProject0.008038

1つのサイコロを6回振って1の目が5回出る確率 InftyProject0.000643

1つのサイコロを6回振って1の目が6回出る確率 InftyProject0.000021


これら6つの確率を足し合わせたものが、6回振って1回以上1の目が出る確率になります。

3個のサイコロを同時に振って1のぞろ目が出る場合InftyProjectですが、216回振って1回以上1のぞろ目が出る確率は216回足し合わせる事になります。

上の計算を216回も気が遠くなりますよね。

繰り返し同じような計算をする場合は、プログラムでループさせる方が効率的で無駄な計算ミスも減ります。

プログラムが苦手な方は表計算でドラッグさせて計算するなどで代用できると思います。


気をつけて頂きたいのは6回目のInftyProjectですが、(6-6)乗ですのでセロ乗という事になりますが、ゼロ乗は1になるという定義があります。


今回は問題になるところはありませんが、プログラムで変数を動かしながらループで計算させるとセロで除算などのエラーが生じたりしますので、最大値最小値やゼロや±が反転する付近などに特に注意が必要です。


因みに「セロでは割れない」というお約束があり電卓でも表計算でもエラーになるはずですが数学的に絶対割れないかというとそうでもありません。

InftyProjectなどのようのゼロ跨ぎで変数が動くケースなど、どうしてもゼロで割らないといけないケースが出てきます。

数学的には解法があるのですが、プログラムで計算するときは例外として扱ったほうが無難です。

シミュレーションなどの高度なプログラムではキチンと対応しているのでしょうが、確率の計算などでこうしたケースが生じたら除外してあとから計算結果を調整した方がやり易いと思います。


後の章で紹介するベイジアンフィルターでは、確率の掛け算割り算をやっています。この場合に一つでもゼロがあると結果が得られなくなってしまいます。

ですので一律に係数を足して補正するなどの対処をしている場合がほとんどです。


プログラムの話に逸れてしまいましたので、戻します。


組み合わせの問題で、以前に目にした問題にこんなのがありました。

「10枚のコインを同時に投げて1枚1枚確認していった時、9枚は全て表でした。残りの1枚が表である確率は?」

答えはいくつだと思います? InftyProjectになるそうです。

これは組み合わせを前提にしているからなんですね。

判りやすいように表を○、裏を×で組み合わせを描いてみると、次のような組み合わせが考えられます。

○○○○○○○○○×

○○○○○○○○×○

○○○○○○○×○○

○○○○○○×○○○

○○○○○×○○○○

○○○○×○○○○○

○○○×○○○○○○

○○×○○○○○○○

○×○○○○○○○○

×○○○○○○○○○

○○○○○○○○○○

ですからInftyProjectになるそうです。

これもモンティホールと同様にコインや扉という物理的な対象が持っている確率ではなく、シチュエーション重視の問題ですね。

同時に投げた、というところがみそで、1枚1枚の確認は結果に影響を及ぼさないという考え方です。


確率を学んでいると、こうした国語というか状況をどう理解するかような練習問題にも多くぶつかると思います。


何かが起こった時に、それが何通り起こるか。


これは全体の数を正確に捉える上で絶対に必要な事です。

ですから確率の練習問題では、出題の意図を斟酌して考えないと間違える事もあると思います。

只、現実に当てはめて確率を考える場合には、自然な考え方に照らし合わせて妥当でなければ通用しません。

どの場面で何が妥当か、それを判断出来るようになるには少しだけトレーニングというか慣れが必要になります。

それこそ、このコラムの理由になっているのです。


と、またもやPRしたところで、話を戻します


InftyProjectという記号は確率の計算式に必ずといっていほど出てきます。InftyProject

InftyProjectのように表記されている場合もあります。

これらの表記方法は覚えておいて下さい。


順列の方は、組み合わせに比べると確率の計算で見かけることは少なめだと思います。

順列の意味はご存知だと思いますので、記号やRとExcelでの関数使用例だけ紹介します。


InftyProjectが順列の記号でPermutationのPで表します。

Rではprod関数を使います。少し使い方にクセがあり、prod(n,i)のように指定できません。

prod( (n-i+1):n)という使い方になるので注意してください。InftyProjectならprod((8-4+1):8)になります。

Excelでは=PERMUTを使います。InftyProjectなら=PERMUT(8,4)とします。


階乗は、n!のように!で表します。

Rでは、gamma関数を使います。5!ならgamma(5+1)とします。必ず+1をして下さい。

Excelなら=FACTです。5!なら=FACT(5)となります。

因みにべき乗はRもExcelも^を使います。 5の3乗、InftyProjectなら、5^3と計算します。



場合の数の最後に、ありがちな組み合わせの練習問題を少し。

これは表ではなくて、縦6本横3本の線です。

  

B

A


1)A地点からB地点まで最短経路で行く方法は何通りありますか。


2)上のように縦に6本、横に3本の線があります。この線を使って四角形は幾つ出来るでしょうか。

  1マスだけの小さい四角形も15マス全部を使った大きい四角形も、どんな大きさでも全てカウントします。


答え1) 8C3=35 もしくは 8C4=35で、56通りです。

        右には5マス進む事ができて、上には3マス進む事が出来ます。

     5+3で8本の線を通る事になります。

     その中から、右方向か上方向のどちらかを選び出せば求まります。


答え2) 6C2×3C2で、45個出来ます。

     四角形は縦2本と横2本の線で出来てますね。

        ですから、縦6本から2本と横3本から2本選べば勝手に四角形が出来てします。


52通りの中からお好きな3点を選んで22,100通りのメニュー、などのような時でも組み合わせの計算は必要ですし、よく使います。

ですので、いろいろな使い方、考え方は知っておいて損はありません。




続いては集合の話です。

これも確率を考える上では必須になります。


前章の条件付確率の説明でベン図を使いました。

こういう感じの図です。

image001.png

集合を取り扱う時と確率を取り扱う時では、若干用語の差があります。

確率では起こり得る全てを全事象といいますが、集合では全体集合といいます。

この全てをU(Universal Set)InftyProjectで表される事が多くあります。

A∩BのCの部分を、確率では積事象と呼び、集合では単に共通部分と呼びます。

A∪B、Cを含むAとBを足した部分を、確率では和事象、集合では和集合と呼びます。

Aに属さない部分、Cを除くBとUになりますが、ここを確率では余事象、集合では補集合といいます。

φ(ファイと読みます)は、何も無い意味で、確率では空事象、集合では空集合にあたります。

集合の中身を、確率では事象、集合では要素と呼びます。


キマジメに用語の使い分けを覚えなくても、もし混乱したら見直すぐらいで大丈夫です。


これを元にした関係式を紹介します。

1.A∩B=φのとき、P(A∪B)=P(A)+P(B)

2.P(A∪B)=P(A)+P(B)-P(A∩B)


具体的に説明してみます。

数字はサイコロの目だと思って下さい。

左側のAは3以下の集合です。右側のBは偶数の集合です。

image002.png

InftyProject={1,2,3}

InftyProject={2,4,6}

InftyProject={2}

InftyProject={5}


Aの確率P(A)はInftyProjectで、Bの確率P(B)もInftyProjectです。これをそのまま足すとP(A)+P(B)=1になってしまいますね。

{2}が2重にカウントされてしまってるので、{2}の積事象部分の確率P(A∩B)を引かないといけません。

上記の関係式2のP(A)+P(B)-P(A∩B)は、これを意味しています。

A∩Bが無ければ、つまり重なる部分がなければP(A∩B)はゼロですので引く必要はありません。

関係式1の、A∩B=φというのはこの意味です。


プログラム的な見方をすれば、ゼロを引いてもどうせゼロなので関係式1だけでも足りてしまいます。

ですが、イメージをしっかり掴むまでは教科書通りに、分けて考えて方が混乱しにくいと思います。

image003.png

今度はAとBで重なる部分がありません。このようにAとBが同時起こる事が決してないことを、AとBは排反であると言います。

Aが他の集合と重なる事象が無いとき、Aがほかのどの集合とも排反のとき、InftyProjectが成立します。


A∩Bの記号や集合の考え方は、条件付確率やベイズなどでは最低限必要な知識です。

難しいことはないですが、複雑になると混乱しやすいところでもあります。



この章では、場合の数と集合についてサラッと流しました。

サラッと流しましたが、ここも基本中の基本です。


6回サイコロを振った時に、0~6回の1の目が出る確率計算もしました。

1回以上1の目が出る確率は、それらを足したものでした。


ではサイコロをn回振った場合は、どうなるでしょうか?


次回はそれを取り上げます。

大数の法則とシミュレーションも紹介いたします。


前章へ 次章へ

メインメニュー