【超入門】確率の計算が劇的に早くなる?新人エンジニアが知っておくべき「余事象」の魔法
こんにちは。ゆうせいです。
皆さんは、プログラミングをしていて「条件分岐」を書くことは好きですか?
「もしAなら処理を実行する、でもBの場合は…」とコードを書いていると、頭の中がこんがらがってしまう瞬間、ありますよね。実は、確率の計算やアルゴリズムの設計において、真正面から考えるよりも「逆から考えたほうが圧倒的に楽」な場面がたくさん存在します。
今日は、そんな場面で最強の武器となる余事象(よじしょう)についてお話ししましょう。
エンジニアとして、効率的なロジックを組むための思考法を手に入れませんか?
正面突破が難しいときは「逆」を見よう
いきなりですが、想像してみてください!
あなたは今、ユーザーが引く「ガチャ」のプログラムを書いています。100回ガチャを回したときに「少なくとも1回は大当たりが出る確率」を計算しなければなりません。
これを真面目に計算しようとすると、大変なことになります。
1回目に当たる場合、2回目に当たる場合、あるいは1回目と5回目に当たる場合……と、すべての「当たるパターン」を足し合わせなければならないからです。
そこで登場するのが、今回の主役である余事象です。
余事象とは、ある事象に対して「それが起こらない事象」のことを指します。つまり、コインを投げて「表が出る」という事象に対する余事象は、「裏が出る(表が出ない)」ことです。
先ほどのガチャの例で考えてみましょう。「少なくとも1回当たる」の逆はなんでしょうか?
答えは、「1回も当たらない(全部ハズレ)」です。
計算式で見る余事象の力
確率の世界では、すべての可能性を足し合わせると必ず (つまり100%)になります。これを専門用語で「全事象」と呼びます。
全事象から「起こらない確率」を引けば、残るのが「求めたい確率」になるのです。
これを数式で表すと、以下のようになります。
求める確率
起こらない確率
どうでしょう。とてもシンプルですよね?
ガチャの例に戻れば、「すべてのパターン(100%)」から「全部ハズレる確率」を引くだけで、「少なくとも1回は当たる確率」が一発で求まってしまうのです。膨大な足し算をする必要はありません。引き算を一回するだけで解決します。
エンジニアにとってのメリット
この考え方を学ぶことには、エンジニアにとって大きなメリットがあります。
まず、計算コストの削減です。
プログラムの中で確率計算を行う際、ループ処理で何通りものパターンを計算させるより、余事象を使って一発で答えを出したほうが、処理速度は圧倒的に速くなります。サーバーの負荷を下げることにも繋がりますね。
次に、ロジックの簡略化です。
コードを書くとき、「Aではない場合」という条件(プログラミングでいう !A や not A)を使うことで、ネスト(入れ子構造)を浅くし、可読性を高めることができます。これは「ガード節」と呼ばれるテクニックにも通じる考え方です。
注意点とデメリット
もちろん、万能ではありません。デメリットも理解しておきましょう。
最大の落とし穴は、「逆」の設定ミスです。
「Aが起きる」の逆を考えたときに、うっかり漏れが生じることがあります。
例えば、「サイコロの目が偶数である」の余事象は「奇数である」で正解です。しかし、「サイコロの目が1である」の余事象を考えたとき、「6である」と考えてしまってはいけません。「1以外すべて(2, 3, 4, 5, 6)」が余事象です。
ここを間違えると、計算結果が狂ってしまい、バグの原因になります。
「全事象(全体)」が何なのか、そして「その逆(補集合)」が正確に何を指すのかを、常に意識してください。
今後の学習に向けて
余事象の考え方は、確率統計の入り口でありながら、論理的思考の根幹をなす重要な概念です。
もし興味が湧いたら、次はド・モルガンの法則について調べてみてください。
「かつ(AND)」と「または(OR)」を否定したときに、論理がどう反転するかを学ぶ法則で、今回お話しした余事象の考え方をさらにプログラミングに応用するための強力なツールになります。
「逆から考える」という視点を持つだけで、難解に見えるコードや仕様書が、驚くほどシンプルに見えてくるはずです。
さあ、次の実装では、あえて「逆」から攻めてみませんか?
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
山崎講師2025年11月22日心理学検定 テキスト
山崎講師2025年11月22日【超入門】FP2級(ファイナンシャル・プランニング技能検定2級)
山崎講師2025年11月22日【超入門】確率の計算が劇的に早くなる?新人エンジニアが知っておくべき「余事象」の魔法
山崎講師2025年11月22日【超入門】記述統計と推測統計の違いは?データ分析の第一歩を踏み出そう