平成17年3月27日

[流れ星]

     第152回数学的な応募問題解答

      <解答募集期間:3月6日〜3月27日

[1位のチーム数の期待値]

皆さんは、京都大学の入試問題の過去問です。興味があったので出題します。

NO1「H7K」   3/06: 13時53分受信 更新3/26

試合数の合計は4*3/2=6.
よって,全体の場合の数は2^6=64通り.各場合が起こる確率は等しい.
4チームP, W, B, Gの勝数をそれぞれp, q, r, sとする.
以降,場合分けはp>=q>=r>=sで考える.
また,A-Bで「チームAとBが対戦し,Aが勝った」と書くことにする.
i) 1位の勝数が3のとき
a. 3,3,0,0:P-Wで両方とも勝利していることとなる.×
b. 3,2,1,0:P-W, P-B, P-G, W-B, W-G, B-Gならばよい.
c. 3,1,1,1:
  P-W, P-B, P-G, W-B, B-G, G-W,または
  P-W, P-B, P-G, W-G, B-W, G-B,ならよい.
ii) 1位のチームの勝数が2のとき
a. 2,2,2,0:
  P-G, W-G, B-Gは確定.残り3試合について
  P-W, W-B, B-PかP-B, W-P, B-Wであればよい.
b. 2,2,1,1:
  b-1:P-W, P-B, G-Pのとき:W-B, W-G, B-G.
  b-2:P-W, B-P, P-Gのとき:G-B, W-B, W-G.
  b-3:W-P, P-B, P-Gのとき:2通り.
iii) 1位のチームの勝数が1 or 0
こんなことはない.

したがって,それぞれの場合のようになる確率は
ii-b: 4!/64=24/64=3/8
ii-c: 4*2/64=1/8
ii-a: 4*2/8=1/8
ii-b: (4*3/2)*(1+1+2)/64=3/8
であるから,
求める期待値は
3/8*1+1/8*1+1/8*3+3/8*2=13/8.

NO2「中川幸一」3/06: 22時45分受信 更新3/26

「解答」です。

NO3「cbc」   3/07: 23時20分受信 更新3/26
 

NO4「Toru」    3/08: 13時38分受信 更新3/26

試合数は4C2=6試合。勝敗の組み合わせは2^6=64通りで、これを1位となるチー
ム数によって場合わけをする。

1)1位が1チームのみの時
1チームが3勝0敗となる時で、4チームに可能性があり、それぞれ1位チーム以外
のチーム同士の3試合は勝ち負け自由だから、4x2^3=32通り

2)1位が3チームの時
2勝1敗が3チーム 0勝3敗が1チーム 0勝3敗のチームの選び方が4通り、残
り3チーム間の試合は三つ巴でみんな1勝1敗となるので、どちらに勝つかで2通り。
よって4x2=8通り

3)1位が2チームの時
2勝1敗が2チーム1勝2敗が2チームであるが、4チームとも1位はあり得ないの
で、これは残りで64-32-8=24通り

よって求める期待値は(1x32/64)+(2x24/64)+(3x8/64)=13/8 ――――答え

NO5「浜田明巳」3/11: 17時49分受信 更新3/26


エクセルのマクロを使い,すべての場合の勝ち負けを表示します.条件から,すべて同程度に起きると考えられるので,そのまま1位のチーム数の平均を計算します.答は13/8です.
 このマクロはチーム数を変える事が出来ます.ただし6以上にすると,きついです.セル上に表示させないようにすれば,大丈夫でしょう.

Option Explicit
Const TEAM As Integer = 4 'チーム数
Public WA As Long
Sub Macro1()
    Sheets("Sheet1").Select
    Cells(1, 1).Value = 0 '対戦カード数
    Range("A1").Select
    Dim j1 As Integer
    Dim j2 As Integer
    For j1 = 1 To TEAM - 1
      For j2 = j1 + 1 To TEAM
        Cells(1, 1).Value = Cells(1, 1).Value + 1
        Cells(Cells(1, 1).Value, 2).Value = j1
        Cells(Cells(1, 1).Value, 3).Value = j2
      Next j2
    Next j1
    '
    Cells(1, 5).Value = 0 '勝敗のパターン数
    Range("E1").Select
    Dim a(TEAM * (TEAM - 1) / 2) As Integer 'a(n)=0:番号の若いチームの勝利, a(n)=1:番号の大きいチームの勝利
    WA = 0
    Call saiki(1, a())
    '
    Dim g As Long
    g = GCM(WA, Cells(1, 5).Value)
    Cells(2, 5).Value = Str(WA / g) + "/" + Str(Cells(1, 5).Value / g)
    Range("E2").Select
End Sub
Sub saiki(ByVal n As Integer, ByRef a() As Integer)
    a(n) = 0
    While a(n) <= 1
      If n < Cells(1, 1).Value Then
        Call saiki(n + 1, a())
      Else
        Call hyouji(a())
      End If
      a(n) = a(n) + 1
    Wend
End Sub
Sub hyouji(ByRef a() As Integer) '勝利チームの表示
    Dim b(2 ^ (TEAM * (TEAM - 1) / 2) + 1) As Integer
    Dim max As Integer
    Dim winner As Integer '優勝チーム数
    Dim j As Integer
    For j = 1 To Cells(1, 1).Value
      b(j) = 0
    Next j
    Cells(1, 5).Value = Cells(1, 5).Value + 1
    For j = 1 To Cells(1, 1).Value
      If a(j) = 0 Then
        Cells(Cells(1, 5).Value, j + 5).Value = Cells(j, 2).Value
      Else
        Cells(Cells(1, 5).Value, j + 5).Value = Cells(j, 3).Value
      End If
      b(Cells(Cells(1, 5).Value, j + 5).Value) = b(Cells(Cells(1, 5).Value, j + 5).Value) + 1
    Next j
    max = -1
    For j = 1 To Cells(1, 1).Value
      If max < b(j) Then
        max = b(j)
        winner = 1
      ElseIf max = b(j) Then
        winner = winner + 1
      End If
    Next j
    Cells(Cells(1, 5).Value, Cells(1, 1).Value + 6).Value = winner
    WA = WA + winner
End Sub
Private Function GCM(ByVal a As Long, ByVal b As Long) As Long
    If b = 0 Then
      GCM = a
    Else
      GCM = GCM(b, a Mod b)
    End If
End Function

NO6「ice」     3/14: 21時04分受信 更新3/26


 

NO7「kasama  3/22: 18時16分受信 更新3/26


さて、今回は確率の問題ですね。『確率は場合分けが正解への鍵』とよく聞きます。模範解答などをみると『あぁ、なるほど』と納得できるのですが、自分でやると、なかなかスッキリした形に整理するのは難しいものですね。
引分けがないので、1位チーム数は1、2、3の何れかと考えられます。単純にケースを数え上げてもよいのですが、勝敗を有向グラフで表すと少しわかり易いです。便宜上、4チームの名前をそれぞれA、B、C、Dとします。チームのノード、勝敗を枝と考え、例えばAがBに勝った場合は

と表現します。この表記方法を利用して以下のように数え上げました。

【数上げ】

@1位チーム数=1
Aが1位であったとすると、ノードAから他のノードへの枝の向きが確定します。

すると、残りの3本の枝の向きは任意なので、ケース数は2
3通りです。そして、他のチームが1位である可能性を考慮すると、4×23=32 通りです。
A1位チーム数=3
A、B、Cが1位であったとすると、Dは全敗なので、他のノードからDへの枝の向きが確定します。このとき、他のチームは2勝1敗なので、ケース数は以下の2通りです。

他のチームが全敗であるかもしれないので、4×2=8通りです。
B1位チーム数=2
余事象を考えて、2
6-(32+8)=24通りです。

【期待値の計算】

@、A、Bより1位チーム数の期待値は
 1×32/2
6 + 2×24/26 + 3×8/26 = 13/8
です。