http://www.bunkei-note.work/

文系の夫

文系は作者の気持ちでも考えとくわ


文系は作者の気持ちでも考えとくわ

場合の数

 「場合の数・確率」は小学生の頃から苦手でした。 「数え上げる」というのが難しいんですよね。中学入試向けの教材であれば、今でも小 4 向けの内容ですら満点は取れないと思います。中学生のときは全く勉強していなかったのでどんな問題だったかすら記憶にございません。誠に遺憾であります。

 高校生・大学受験生のときには流石に勉強しました。忘れましたが。多くの模擬試験や実際の大学入試では、場合の数・確率が(ほとんど)毎年出題されていて、前半で操作 n 回目での確率を算出して、後半では n を無限に飛ばした極限の値を求める形式が多かったと記憶しています。そもそも前半が難しくて、仮に答えが出ても誤答の可能性が高かったので、後半の煩瑣な計算処理をやる気にならなかったですし、やっても収束せずに発散ばかりしていました。

 そんな私ですが、冷静になってみると社会人になっても場合の数と(は意識していませんでしたが)格闘してきました。SQL ですね。
 下記の命令をデータベースに投げると、「会員(MEMBER)の中から性別(SEX)が男(M)で、かつ、年齢が 40 歳未満、かつ、年収(ANNUAL_INCOME)が 1 千万以上の登録レコードの ID の件数を表示して」という命令になります。結婚相談所のデータベースってこんな感じなのではないかと勝手に思っています。

SELECT COUNT(ID)
FROM MEMBER
WHERE SEX = 'M' AND AGE < 40 AND ANNUAL_INCOME >= 10000000;

もし、この件数が 3 件だったら、アタックリストとして少な過ぎますので、条件を「45 歳以下」や「年収が 800 万以上」という条件に緩和してみたりすると、件数は増えるかもしれません。
 さすがにこの例の条件は簡単過ぎますが、考えてみればこれも「場合の数」だと思った次第です。WHERE 句で結構苦労したような気がしていたのだけれど、考えてみれば、条件設定としては大して難しいことはしてこなかったのだなあ。

はてな記法でのソースコードの書き方もわかったのでよかったです。