オヤジが持ってた塾生向けの数学の問題を解いてみる

高校1年生の問題だそうで。

■ 問題
袋A,B,C,Dがあり、それぞれに4枚のカードが入っている。
袋のカードには1から4までの番号がつけられている。
袋A,B,C,Dからカード1枚ずつ取り出し、出た数をそれぞれa,b,c,dとする。
出た数a,b,c,dによって次のように得点を定める。

”a≦b≦c≦d のときは(d-a+1)点、それ以外は0点”

得点が1点となる確率を求めよ。

では解いていってみます。
まずカードの入る袋を作ります

create table bag(card int unsigned not null,primary key(card));

4枚の1,2,3,4と書かれたカードが同じように入ってるそうなので入れます

insert into bag (card) values (1),(2),(3),(4);

全部で何通りあるのか数えてみます

select
  count(*)
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
;
+----------+
| count(*) |
+----------+
|      256 |
+----------+

なるほど、256通りですね(掛けたほうが早いだろ
さてここで

”a≦b≦c≦d のときは(d-a+1)点、それ以外は0点”

なるほど、a≦b≦c≦d じゃないときはどうでもいいようなのでこれで絞ってみましょう

select
  count(*)
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
where
  A.card <= B.card and
  B.card <= C.card and
  C.card <= D.card
;
+----------+
| count(*) |
+----------+
|       35 |
+----------+

お、だいぶ減った

得点が1点となる確率を求めよ。

んじゃさらに絞ろう

select
  count(*)
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
where
  A.card <= B.card and
  B.card <= C.card and
  C.card <= D.card and
  D.card - A.card + 1 = 1
;
+----------+
| count(*) |
+----------+
|        4 |
+----------+

なるほど全部が256通りで得点が1になるのが4通りなので
\frac{4}{256}=\frac{1}{64}
か。ちなみにこの4通りは

select
  A.card as a,
  B.card as b,
  C.card as c,
  D.card as d,
  D.card - A.card + 1 as score
from
  bag as A,
  bag as B,
  bag as C,
  bag as D
where
  A.card <= B.card and
  B.card <= C.card and
  C.card <= D.card and
  D.card - A.card + 1 = 1
;
+---+---+---+---+-------+
| a | b | c | d | score |
+---+---+---+---+-------+
| 1 | 1 | 1 | 1 |     1 |
| 2 | 2 | 2 | 2 |     1 |
| 3 | 3 | 3 | 3 |     1 |
| 4 | 4 | 4 | 4 |     1 |
+---+---+---+---+-------+

ぞろ目でした。よい子はこんな解き方しないように。