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

地域活性化イベントのゲームの構想を練っていますが、数学が苦手で困っています。
初歩的な質問だと思いますが、わかる方、教えてください。

参加者は200名

スタッフ10名を相手に、ジャンケンをして
勝ったら5ポイント、負けたら1ポイント

さらに、大ボスとして出てきたスタッフ1名とは
一発勝負のジャンケンをして、
勝ったら10ポイント、あいこで5ポイント、負けたら1ポイント

という2段階でゲームを行った場合、
同じ点数を取る確率はどのように出したらいいでしょうか?

その確率によって
最初のスタッフ10名を15名にすることも検討したいです。

A 回答 (5件)

「同じ点数を取る確率」ってどういう意味?



200名の参加者のなかに同点の人がいるかという意味なら、100%確実にいます。
    • good
    • 0

あ、ちょっと言いすぎた。


200名の参加者のなかに同点の人がいるかという意味なら、「ほぼ」確実にいます。
と言いなおします。

この回答への補足

言葉足らずで申し訳ないです。回答ありがとうございます。

最終的に1位~10位まで順位を付けなくてはいけなくて、
2~3人が同点なら、
同点決勝としてジャンケンをして順位付けできるかと思うのですが、
同点の方があまりに頻発しそうならルール改定しなくてはならないので、
悩んでいます。

補足日時:2011/09/09 11:02
    • good
    • 0
この回答へのお礼

私のつたない説明でわかりにくかったと思いますが
迅速な回答とコメントありがとうございました。

お礼日時:2011/09/12 08:20

同じ点数が発生する確立は100%です。

 なんたって200人いるのに点数のパターンは10数通りしかないんだから。

多分最高得点が同じになる確率、といいたいのだろうけどそうであれば、

最初に11ポイント上げておいて
スタッフ相手に勝ったら4ポイント負けたら0ポイント
大ボス相手は勝ったら9ポイント、あいこで4ポイント負けたらポイント無し
とおなじことだから、、、 めんどくさくなってきたぞ。

200人中2名以上が満点を取る確立+満点がいない確立x(満点-4)が二人以上発生する確率+...
ってことだよね。 おいらも確立よくわかんないんでプログラム作ってやってみた。

Private Sub Command1_Click()
Screen.MousePointer = vbHourglass
Text2 = 0
For n = 1 To Text1
Maxz = 0
For x = 1 To 200
z = 0
Randomize
For y = 1 To 10
z = z + Int(Rnd() + 0.5) * 4
Next y
r = Round(Rnd() * 3 + 1)
Select Case r
Case 1
Case 2
z = z + 4
Case 3
z = z + 9
End Select
If z > Maxz Then
Maxz = z
maxcount = 1
Else
If z = Maxz Then
maxcount = maxcount + 1
End If
End If
Next x
If maxcount > 1 Then Text2 = Text2 + 1
Next n
Screen.MousePointer = vbNormal
End Sub

200人のじゃんけんを100回したとしてトップが同点になった回数を求めました。
そしてそれを10回やってみると、
42,63,55,29,67,42,24,70,60,14となりました。
じゃんけんする人数を15人に増やしてみたところ(for y = 1 to 15 にしてみたら)
妙に高い数値が出ました。
20人にしたら、53,37,49,28,20,49,29,29,50,51,12となりました。
若干低くなったような気配があります。
30人にしたら 9,18,31,24,16,29,27,14,27,20となり、顕著に下がったような気がします。

私のプログラムにいまいち地震がないので断言できませんが、30人相手でも10~30%の確立で同点トップが2人以上発生すると思われます。 トップを決める方法を別途用意されたほうが無難であると考えます。
    • good
    • 0
この回答へのお礼

言葉足らずな質問でした。すいません。

それでも、丁寧にプログラムまで作ってくださってありがとうございます。

しっかり参考にさせていただきました。
人数を増やすだけではあまり良い解決方法にならないようですね。
特別指令やマイナス制度を加えてアレンジしてみます。

ありがとうございました!

お礼日時:2011/09/12 08:18

#3さんの方法を確認してみました。


人数が15人のときに妙に高い数値が出ているようですが、これはRandomizeの場所が影響しています。
Randomizeを一番上にもっていくと、予想通りの結果になるようです。


で、ゲームのルールですが、
「勝ったら5ポイント、負けたら1ポイント」だと、10回中何回勝ったかでポイントが決まってくるので、
ポイントの差があまりつきません。

これを、最初にポイントをいくらか持っていて、
「勝ったら持ちポイントを倍に、負けたらプラス1ポイント」
に変えると、勝った順番も影響してくるので、ポイントの差が大きくなって同点の確率が小さくなります。

#3さんのプログラムを一部変更して検証してみると、
10人だと、6~9%
15人だと、1%未満
20人だと、ほぼ0%になります。
    • good
    • 0
この回答へのお礼

ありがとうございます!
計算もアイデアも助かります。

あらかじめ持ち点数を持っていての倍増ポイントというルールは
変化があって面白いですね。。
各参加者の持ち点数の管理が難しいので、今回は実行できなさそうですが
色々アレンジもできそうなので、何かのイベントで実行できればと思います!

ありがとうございました。

お礼日時:2011/09/12 08:09

スタッフ10名とじゃんけんしたときの、それぞれの勝ち数の確率は、



10勝0敗 50点 10C10/2^10=1/1024
9勝1敗 46点 10C9/2^10=10/1024
8勝2敗 42点 10C8/2^10=45/1024
7勝3敗 38点 10C7/2^10=120/1024
6勝4敗 34点 10C6/2^10=210/1024
5勝5敗 30点 10C5/2^10=252/1024
4勝6敗 26点 10C4/2^10=210/1024
3勝7敗 22点 10C3/2^10=120/1024
2勝8敗 18点 10C2/2^10=45/1024
1勝9敗 14点 10C1/2^10=10/1024
0勝10敗 10点 10C0/2^10=1/1024

大ボスに勝ったとき○、あいこのとき△、負けたとき×、とすると、

10勝0敗○ 50+10=60点 1/1024/3=1/3072
10勝0敗△ 50+5=55点 1/1024/3=1/3072
10勝0敗× 50+1=51点 1/1024/3=1/3072
9勝1敗○ 46+10=56点 10/1024/3=10/3072
9勝1敗△ 46+5=51点 10/1024/3=10/3072
9勝1敗× 46+1=47点 10/1024/3=10/3072
8勝2敗○ 42+10=52点 45/1024/3=45/3072
8勝2敗△ 42+5=47点 45/1024/3=45/3072
8勝2敗× 42+1=43点 45/1024/3=45/3072
7勝3敗○ 38+10=48点 120/1024/3=120/3072
7勝3敗△ 38+5=43点 120/1024/3=120/3072
7勝3敗× 38+1=39点 120/1024/3=120/3072



あとは面倒なので、自分でやってください。

注意しなければならないのは、10勝0敗×と9勝1敗△はどちらも51点、9勝1敗×と8勝2敗△はどちらも47点、ということ。
だから、
60点 1/3072
56点 10/3072
55点 1/3072
52点 45/3072
51点 1/3072+10/3072=11/3072
48点 120/3072
47点 10/3072+45/3072=55/3072



というようにすれば、各点数の確率が解ります。
これに200人を掛けてあげれば、各点数の期待値(人数)が解ります。


あとの作業は、面倒くさいだけで、数学が得意か苦手かは関係なので、頑張ってください。


大ボスとあいこになったときに5点ではなく4点にすると、10勝0敗×と9勝1敗△のように同じになるパターンがないので、楽かと。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
現実的なことを考えると、8勝2敗程度が多そうなので
かなり高い確率で同点が発生しますね。。

点数に変化をつけて、ミッションなどを加えたりして
ルールを改正してみます。
助かりました。

参加者に楽しんでもらえるようにもっと努力します。

お礼日時:2011/09/12 08:04

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