プロが教えるわが家の防犯対策術!

「今、無造作に人を集めたとします。このとき、何人以上集まっていれば、月曜日生まれ・火曜日生まれ・水曜日生まれ・木曜日生まれ・金曜日生まれ・土曜日生まれ・日曜日生まれが出揃う確率が80%以上になるでしょうか」という問題があったとします。
このとき、この問題を一番効率よく解くには、そのような方法で解くのがいいのでしょうか?

A 回答 (4件)

> 表を見ればm=23で条件を満たすようですが、結構地道に計算していますね…



コンピュータで計算するプログラムを作ったから、別に地道じゃなかったです。
一つ問題がありまして、人数が大きくなってきたら、aとbの値が long long(64ビットint)でも間に合わなくなって、めんどうなので double にしてしまったからです。そのため10人台の終わりから、やや不正確です。でも80%になるのは何人からか、という答えが1も違うほどには誤差は大きくないと思います。
    • good
    • 0

↓のANo2さんの答えは明らかにおかしいですね。



> m 人集まっているときに揃っている確率は、
> 1-(6/7)^m

とおっしゃいますが、m=6の時絶対に全ての曜日がそろうはずはないから
0% なのに、この式ではそうなりません。

私の解は次のとおりです。

m人がいるときの曜日の組み合わせは
a = 7^m
とあることはわかると思います。

m人が全ての曜日に分離する組み合わせは証明は省略しますが、
b = 7^m - 6^m * 7 + 5^m * 21 - 4^m * 35 + 3^m * 35 - 2^m * 21 + 7
となります。

これを手元のパソコンで計算して見ました
m=1 a=7.000000 b=0.000000 b/a=0.00000000
m=2 a=49.000000 b=0.000000 b/a=0.00000000
m=3 a=343.000000 b=0.000000 b/a=0.00000000
m=4 a=2401.000000 b=0.000000 b/a=0.00000000
m=5 a=16807.000000 b=0.000000 b/a=0.00000000
m=6 a=117649.000000 b=0.000000 b/a=0.00000000
m=7 a=823543.000000 b=5040.000000 b/a=0.00611990
m=8 a=5764801.000000 b=141120.000000 b/a=0.02447960
m=9 a=40353607.000000 b=2328480.000000 b/a=0.05770191
m=10 a=282475249.000000 b=29635200.000000 b/a=0.10491255
m=11 a=1977326743.000000 b=322494480.000000 b/a=0.16309620
m=12 a=13841287201.000000 b=3162075840.000000 b/a=0.22845244
m=13 a=96889010407.000000 b=28805736960.000000 b/a=0.29730655
m=14 a=678223072849.000000 b=248619571200.000000 b/a=0.36657492
m=15 a=4747561509943.000000 b=2060056318320.000000 b/a=0.43391883
m=16 a=33232930569601.000000 b=16540688324160.000000 b/a=0.49771982
m=17 a=232630513987207.000000 b=129568848121440.000000 b/a=0.55697271
m=18 a=1628413597910449.000000 b=995210916336000.000000 b/a=0.61115365
m=19 a=11398895185373144.000000 b=7524340159588561.000000 b/a=0.66009381
m=20 a=79792266297612000.000000 b=56163512390086080.000000 b/a=0.70387163
m=21 a=558545864083283968.000000 b=414847224363337856.000000 b/a=0.74272723
m=22 a=3909821048582987776.000000 b=3037922395035897344.000000 b/a=0.77699781
m=23 a=27368747340080914432.000000 b=22088515675551215616.000000 b/a=0.80707076
m=24 a=191581231380566409216.000000 b=159654417813094891520.000000 b/a=0.83335104

うーむ、この掲示板は空白が詰められるので、うまく表がでませんね。
    • good
    • 0
この回答へのお礼

ありがとうございました。
表を見ればm=23で条件を満たすようですが、結構地道に計算していますね…

お礼日時:2006/02/22 21:02

一番オーソドックスなのが一番効率が良いような気がします。



m 人集まっているときに揃っている確率は、
1-(6/7)^m
と書けます。したがって
1-(6/7)^m >= 0.8
となる最小の m を考えればよいです。

これを解けば
(6/7)^m >= 0.2
m log(6/7) >= log(0.2)
m >= 10.44
となります。
    • good
    • 0

そのような方法



って何?

この回答への補足

すみません。
「どのような方法」の間違いでした。

補足日時:2006/02/21 22:36
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!