松下昇への接近

 旧 湾曲していく日常

あと十日(私立高校入試まで)

全国の受験生のみなさん がんばってくださいね。さて
受験の悩みのないわたしですが、1/27に掲げた「確率の問題」がまだ解けずにいます。
1/28に、7つの内から3つ選ぶ順列(7*6*5=210個)を、C言語で列挙することができました。1から7までの数字を使い、3桁の数で表現してみました。
昨日、数字(1、2、3)をB、それ以外をRと文字に入れ替えようとしました。ところがこれがひどく難しく難渋しました(私の力がないからだけですが)。 } } だらけになりながら、なんとかできました。*1


さて、今日、dempaxさんからTBをいただき、
次のように問題を変えて出題してくれました。

【1】Aが最初に赤を引き,3枚目に同じく赤を引く確率
【2】Aが最初に赤を引き,2枚目,3枚目が同じ色になる確率
【3】Aが1枚目と3枚目で同じ色を引く確率
【4】Bの引いた2枚目とAが3枚目に引くカードが同じ色である確率
をそれぞれ求めよ.

わたしのプログラムでは、
printf ("%s ",&iro[0]);
で、 bbb とかbrrとかをプリントさせている。その文章の前に、下記を追加すればできるはずだ。

【1】 if(iro[0] == 'r'&& iro[2] == 'r'){
Aが最初に赤を引き,3枚目に同じく赤を引く確率
【2】 if(iro[0] == 'r'&& iro[2] ==iro[1]){
Aが最初に赤を引き,2枚目,3枚目が同じ色になる確率
【3】 if(iro[1] == iro[0]) {
Aが1枚目と3枚目で同じ色を引く確率
【4】 if(iro[2] == iro[1]) {
Bの引いた2枚目とAが3枚目に引くカードが同じ色である確率

答えは、

【1】60個 つまり 60/210
【2】48個 つまり 48/210
【3】90個 つまり 90/210
【4】60個 つまり 60/210

になりました。
わりにすぐできたのでとても嬉しい!
さて合っているのかな。
ダメだ!! 問題を誤解していた。「Aが最初に赤を引いたとして」という意味だったのだ。わたしの1−4に対応してくれている。

【1】60個 つまり 60/120
【2】48個 つまり 48/120

ならいいのかな。
dempaxさんの記事を丁寧に読む暇がなかった。出勤します。(1/30)

*1:わたしの書いたものより }が二つも余計に必要なのはなぜなんだろう?