Weekend Mathematics問題/問題43



43.ガムの問題

  1. ジョ−ンズ夫人が双子を連れてガムの自動販売機の前を通りかかりました。
    双子その1:ママ、ガムがほしいよ−
    双子その2:ぼくも−ママ、ビリ−と同じ色のガムをちょうだい
    ガムの自動販売機の中には、赤が6個、白が4個しか残っていません。
    ジョ−ンズ夫人は同じ色のガムを2個買いたいのですが、確実に同じ色のガム2個を買うには何セント 用意すればいいでしょうか。ガムは1個1セントです。

  2. 今度は自動販売機の中に赤いガム6個、白いガム4個、青いガム5個があったとすると、 同じ色のガム2個を手に入れるには最高何セント必要でしょうか?

  3. 今度は自動販売機の中には、赤いガム6個、白いガム4個、そして青いガムが1個だけ入っています。 スミス夫人が三つ子のために同じ色のガム3個を手に入れるためには、 最高何セント用意しなければならないでしょうか?



問題の出典


別冊サイエンス ひらめき思考

マ−チン・ガ−ドナ−

日経サイエンス社





答えと解説












答えと解説

問題1


解答・その1

(ペンネ−ム:しのぶ大好き)

自動販売機の中に赤白のガムがあるので、最初に白がでたとする。 問題に「確実に」と書いてあるので、次に赤がでてくるとまだ1個ずつになります。 次にもう1個ひけばどっちか2個になりますね。ですから3セントで確実に買えます。



解答・その2

(ペンネ−ム:牛大魔王)

1このガムが1セントだから、まずはじめに1回やって、赤がでてくるとすると、 次にやると、赤か白かどちらかがでてくる。 しかし、赤がでてくると限らないので最低3セント必要になる。



解答・その3

(ペンネ−ム:バンザイ)

3セント
赤と白が、交互にでてきたら、まず赤と白1個ずつで2セント。 次にどちらかがでれば2個になるので3セント。
同じのが偶然でれば2セントだけど、確実になので2セントではない。



解答・その4

(ペンネ−ム:イースター島のモアイ)

1回目で赤白どっちかのガムが入る。
仮定:1回目で赤、2回目で白、3回目でどっちがでても2個になる。
よって、確実に買うには3セント。



解答・その5

(ペンネ−ム:モトコ大好き)

答3セント
理由 2セント買ってたとえ違う色がでても3個目で必ず同じペアができるので3セントで買える。



解答・その6

(ペンネ−ム:橋本ゆうこ大好き)

3セント
理由:先ずガムを2つ買います。3つの可能性が出ます。
赤1個、白1個   赤2個   白2個   になります。
そして1番目のパターンでまだ2個になっていないので、もう1個買うと
赤2個、白1個   赤1個、白2個 となる。よって3セントあれば確実に同じ色のガムが買える。



解答・その7

(ペンネ−ム:aa)

確実に同じ色のガムを買うためには、3個買う必要がある。よって3セント。
(2個ならば、赤赤、赤白、白白でダメな場合がある。 3個ならば、赤赤赤、赤赤白、赤白白、白白白で確実に2個同色がある)



解答・その8

(ペンネ−ム:RJCX)

答えは、3セント用意すればよい。
2セントでは、赤白が1個ずつの可能性があるが、 3セントだと3:0、1:2、2:1、0:3のいずれかになり、よって、どちらか のガムが2個は確実に手に入る。



解答・その9

(ペンネ−ム:かつ)

ガムの色が2種類しかないので・・・
2セントあると、


のどちらかになります。
つまりこの時点で2個手に入りますが、 もう1つの場合だと足りないのでもう1セント必要になります。
ということで確実に2種類のガムを買うには3セント必要になります。

問題がシンプルになるとその分あってるのか、不安になるようです。 なかなかおくが深いですね。 きっともっとシンプルな解き方、理論的な解き方があるのではないかと思います。
でもこの問題って、鳩の巣の問題と同じ考え方になるんじゃないかなと思いました。

今回のは、
  鳩の巣=ガムの色の数
  鳩の数=ガムの個数
となるのではないのでしょうか?



解答・その10

(ペンネ−ム:ch3cooh)

3 cent
購入するパターンの最悪のケースは 1 回目と 2 回目が 異なる色の場合ですが、2 色しか無いため3 回で同じ色が 2 個そろいます。

必要とする費用の期待値は 38/15 cent  (Q2,Q3 の期待値を筆算で求めるのは大変です。)




問題2


解答・その1

(ペンネ−ム:落武者)

4セント
理由:1回目、2回目、3回目で違う色がでても4回目で必ずどれかと同じ色がでてくる。



解答・その2

(ペンネ−ム:牛大魔王)

まずやって、すべて別の色がでてくるとすると、あと1回やれば、どれかが2つそろうので、最低4セント必要になる。



解答・その3

(ペンネ−ム:バンザイ)

4セント
赤、白、青が、まず1個ずつでてきて3セント。 あと、どれか1つがでれば2個になるので4セント。



解答・その4

(ペンネ−ム:清水南高校)

たとえば、
赤赤、赤白赤、赤白青赤、白白、 白赤白、白赤青白、青青、青白青、青白赤青
というふに、どうやっても最高は4セントになります。



解答・その5

(ペンネ−ム:夜ふかしのつらいおじさん)

答えは4セントです。
ガムの色は3種類しかないのですから、3つ違う色がでたとしても4個目は、 はじめの3種類のどれかの色しかでてきません。
双子にガムを買う場合、n種類(それぞれ2個以上ある)なら、最悪n回違う色が出たとしても、 その次は今までのどれかの色が必ず出ます。




解答・その6

(ペンネ−ム:けーじゅ)

1.2.3回目で違う色が出たとしても、4回目で必ず1,2.3回目のどれかと同じ色が出るから、 答え.4セント



解答・その7

(ペンネ−ム:ねこ)

4セント
最悪のパターンは、3セントで赤1個、白1個、青1個の場合。 もう一つ買えばどれかの色が2個になるので4セントで十分。




解答・その8

(ペンネ−ム:もんさん)

4セント    3セント使った時点で赤、白、青のとき4セント必要




問題3


解答・その1

(ペンネ−ム:落武者)

6セント
理由:1,2,3回目でそれぞれ違う色がでてもあと3回買えば確実に赤か白が3色そろう。 (青は1回しかでてこないのでだぶることはない)



解答・その2

(ペンネ−ム:だぜ!)

6セント
赤、白、青が、まず1個ずつでてきたとして、青は1個しかないので、 赤と白がもう1個ずつでてきて5セント。
そこで、次に赤と白にどちらかがでてきたら3個になるので6セント。



解答・その3

(ペンネ−ム:少年H)

答え6セント
青色が1つしかないので、赤と白だけで考えると、最悪ケースは最初の4個が赤二つ 白二つの場合で5個目には、赤か白が三つそろう。また、その途中に青がきたとし て、最高6個買えば良い。



解答・その4

(ペンネ−ム:マサボー)

同じ色が出ない最大の個数を考えて(出る順番は考慮せず)、

青は1個より(赤、赤、白、白、青)となり、6個目は必ず同じ色が3個になる。6セント。



解答・その5

(ペンネ−ム:BossF)

aha!でしたっけ、懐かしい

6¢

最悪の場合を考えました 



解答・その6

(ペンネ−ム:yakabe)

赤6個、白4個、青1個から同じ種類3個を買いたいのだから赤色か白色で3 個揃えることになる。3個揃わない最高を考えると赤2個、白2個、青1個である。 次の6個目を買うと青色は既に出てないので赤色か白色で3個そろう。よって6個買 えばいいので6セント。



解答・その7

(ペンネ−ム:隣の野良猫)

6セント
理由:5セント入れて、最悪の場合でも、赤二個、白二個、青一個、になる。 青は一個しかなかったから、次のはいるのは赤か白、だから、 最高6セント入れれば、同じ色のガム3個手に入れることが出来ます。



解答・その8

(ペンネ−ム:mhayashi)

赤ー赤ー白ー白ー青ー○ (←何がきてもOK)
上の「赤,白,青」は順不同。
で6セント。



解答・その9

(ペンネ−ム:夜ふかしのつらいおじさん)

答えは6セントです。
はじめの5回で、赤2個・白2個・青1個出たとしても、 6回目は赤か白のどちらかが必ず出ます。

[別解]
ガムの色を包み紙の色と解釈すると、4セントでも何とかなるのではないでしょうか。 最悪3回異なる色が出たとしても4回目は赤か白が出ます。 同じ色が2つそろったところで三つ子その1とその2を呼び、同じ色のガムを与えます。 そして、その2にガムを捨てるときのために違う色の包み紙を与えて初めに与えた包み紙を回収します。 次に三つ子その1を残しその3を呼び、その2から回収した包み紙で包んだガムを与えます。 その1とその2はお互い同じ色のガムをもらい、その1とその3も同じ色のガムをもらったことになるので、 三つ子のそれぞれは納得できるのではないでしょうか。 子育てのいろいろな場面で出費を抑えていくのは大切なことだと思います。



解答・その10

(ペンネ−ム:浜田 明巳)

問題3の答は6セントです.考えられる場合は,以下の60通り.
赤赤白白青赤,赤赤白白青白,赤赤白青白赤,赤赤白青白白,赤赤青白白赤,赤赤青白白白,
赤白赤白青赤,赤白赤白青白,赤白赤青白赤,赤白赤青白白,赤白白赤青赤,赤白白赤青白,
赤白白青赤赤,赤白白青赤白,赤白青赤白赤,赤白青赤白白,赤白青白赤赤,赤白青白赤白,
赤青赤白白赤,赤青赤白白白,赤青白赤白赤,赤青白赤白白,赤青白白赤赤,赤青白白赤白,
白赤赤白青赤,白赤赤白青白,白赤赤青白赤,白赤赤青白白,白赤白赤青赤,白赤白赤青白,
白赤白青赤赤,白赤白青赤白,白赤青赤白赤,白赤青赤白白,白赤青白赤赤,白赤青白赤白,
白白赤赤青赤,白白赤赤青白,白白赤青赤赤,白白赤青赤白,白白青赤赤赤,白白青赤赤白,
白青赤赤白赤,白青赤赤白白,白青赤白赤赤,白青赤白赤白,白青白赤赤赤,白青白赤赤白,
青赤赤白白赤,青赤赤白白白,青赤白赤白赤,青赤白赤白白,青赤白白赤赤,青赤白白赤白,
青白赤赤白赤,青白赤赤白白,青白赤白赤赤,青白赤白赤白,青白白赤赤赤,青白白赤赤白

最初の5回で,赤2回,白2回,青1回出て,最後の6回目に赤,白のいずれかが出れば良いのです.

今回はエクセルのマクロで解いてみました. ガムの色を1,2,3で表し,その1,2,3の並べ方を数えてみたのです. なるべく問題の条件を変えても対応できるように作ってみました.
この手のプログラムで大変な所は,へたに工夫してしまうと,問題を解いてしまい, わざわざプログラムを組む必要がなくなってしまう事です. だから変数もガム15個分のj(1)〜j(15)を用意しました. 本当は6個しかいらないのですが.

Option Explicit
Sub Macro1()
    Dim mondai As Integer
    Dim iro(3) As Integer
    Dim kosuu(3, 3) As Integer
    Dim kid(3) As Integer
    Dim gum As Integer
    Dim kotae As Integer
    Dim example As String
    Dim col(3) As String
    Dim j(15) As Integer
    Dim jj As Integer
    Dim m As Integer
    Dim deta As Integer
    Dim dame As Integer
    Dim aru(15) As Integer
    iro(1) = 2 '色の種類の数
    iro(2) = 3
    iro(3) = 3
    kosuu(1, 1) = 6 'それぞれのガムの個数
    kosuu(1, 2) = 4
    kosuu(2, 1) = 6
    kosuu(2, 2) = 4
    kosuu(2, 3) = 5
    kosuu(3, 1) = 6
    kosuu(3, 2) = 4
    kosuu(3, 3) = 1
    kid(1) = 2 '子供の数
    kid(2) = 2
    kid(3) = 3
    col(1) = "赤"
    col(2) = "白"
    col(3) = "青"
    For mondai = 1 To 3 '問題の番号
      Cells(mondai, 1).Value = mondai
      kotae = 0 '答
      gum = 0 'ガムの総数
      For jj = 1 To iro(mondai)
        gum = gum + kosuu(mondai, jj)
      Next jj
      j(1) = 1
      While j(1) <= iro(mondai)
        j(2) = 1
        While j(2) <= iro(mondai)
          m = 2
          GoSub check
          If dame = 0 And deta = 0 And gum > 2 Then
            j(3) = 1
            While j(3) <= iro(mondai)
              m = 3
              GoSub check
              If dame = 0 And deta = 0 And gum > 3 Then
                j(4) = 1
                While j(4) <= iro(mondai)
                  m = 4
                  GoSub check
                  If dame = 0 And deta = 0 And gum > 4 Then
                    j(5) = 1
                    While j(5) <= iro(mondai)
                      m = 5
                      GoSub check
                      If dame = 0 And deta = 0 And gum > 5 Then
                        j(6) = 1
                        While j(6) <= iro(mondai)
                          m = 6
                          GoSub check
                          If dame = 0 And deta = 0 And gum > 6 Then
                            j(7) = 1
                            While j(7) <= iro(mondai)
                              m = 7
                              GoSub check
                              If dame = 0 And deta = 0 And gum > 7 Then
                                j(8) = 1
                                While j(8) <= iro(mondai)
                                  m = 8
                                  GoSub check
                                  If dame = 0 And deta = 0 And gum > 8 Then
                                    j(9) = 1
                                    While j(9) <= iro(mondai)
                                      m = 9
                                      GoSub check
                                      If dame = 0 And deta = 0 And gum > 9 Then
                                        j(10) = 1
                                        While j(10) <= iro(mondai)
                                          m = 10
                                          GoSub check
                                          If dame = 0 And deta = 0 And gum > 10 Then
                                            j(11) = 1
                                            While j(11) <= iro(mondai)
                                              m = 11
                                              GoSub check
                                              If dame = 0 And deta = 0 And gum > 11 Then
                                                j(12) = 1
                                                While j(12) <= iro(mondai)
                                                  m = 12
                                                  GoSub check
                                                  If dame = 0 And deta = 0 And gum > 12 Then
                                                    j(13) = 1
                                                    While j(13) <= iro(mondai)
                                                      m = 13
                                                      GoSub check
                                                      If dame = 0 And deta = 0 And gum > 13 Then
                                                        j(14) = 1
                                                        While j(14) <= iro(mondai)
                                                          m = 14
                                                          GoSub check
                                                          If dame = 0 And deta = 0 And gum > 14 Then
                                                            j(15) = 1
                                                            While j(15) <= iro(mondai)
                                                              m = 15
                                                              GoSub check
                                                              j(15) = j(15) + 1
                                                            Wend
                                                          End If
                                                          j(14) = j(14) + 1
                                                        Wend
                                                      End If
                                                      j(13) = j(13) + 1
                                                    Wend
                                                  End If
                                                  j(12) = j(12) + 1
                                                Wend
                                              End If
                                              j(11) = j(11) + 1
                                            Wend
                                          End If
                                          j(10) = j(10) + 1
                                        Wend
                                      End If
                                      j(9) = j(9) + 1
                                    Wend
                                  End If
                                  j(8) = j(8) + 1
                                Wend
                              End If
                              j(7) = j(7) + 1
                            Wend
                          End If
                          j(6) = j(6) + 1
                        Wend
                      End If
                      j(5) = j(5) + 1
                    Wend
                  End If
                  j(4) = j(4) + 1
                Wend
              End If
              j(3) = j(3) + 1
            Wend
          End If
          j(2) = j(2) + 1
        Wend
        j(1) = j(1) + 1
      Wend
      Cells(mondai, 2).Value = kotae
      Cells(mondai, 3).Value = example
    Next mondai
    End
'
check:
    For jj = 1 To iro(mondai)
      aru(jj) = 0
    Next jj
    dame = 0
    deta = 0
    jj = 1
    While dame = 0 And deta = 0 And jj <= m
      aru(j(jj)) = aru(j(jj)) + 1
      dame = -(aru(j(jj)) > kosuu(mondai, j(jj)))
      deta = -(aru(j(jj)) = kid(mondai))
      jj = jj + 1
    Wend
    If dame = 0 And deta Then
      If kotae < m Then
        kotae = m
        example = ""
        For jj = 1 To m
          example = example + col(j(jj))
        Next jj
      ElseIf kotae = m Then
        example = example + ","
        For jj = 1 To m
          example = example + col(j(jj))
        Next jj
      End If
    End If
    Return
End Sub




 

正解者

少年Hyakabe浜田 明巳
ねこもんさん清水南高校
夜ふかしのつらいおじさんかつch3cooh
BossFけーじゅマサボー
落武者しのぶ大好き牛大魔王
バンザイイースター島のモアイモトコ大好き
橋本ゆうこ大好きだぜ!隣の野良猫
aaRJCXmhayashi





まとめ

今回は、北海道の門別町立厚賀中学校の皆さんをはじめたくさんの方から解答をいただきました。 どうもありがとうございました。

今回の問題は、かつさんの解答・その9でのご指摘通り、 鳩の巣の問題と考え方は同じです。
確実に同じ色のガムを買うには、最悪のケ−スを想定しなければなりません。
一般に子どもの数がk人、ガムはn種類(数は充分にある、少なくとも子どもの数よりは多い。) とすると、最悪のケ−スはどの色も(k−1)個でてしまう場合です。
しかしあと1個買えば、必ずどの色かがk個そろうことになります。
従って答えは、n(k−1)+1 

問題3のように、ガムの個数が子どもの数に満たないような色がある場合は、その色を除外した上で、その色の個数を足す必要がありますね。 そうです、最悪のケ−スです。

さてch3coohさんが解答・その10で考察してくださった期待値について考えてみましょう。 期待値というのは、平均すると、何セント必要かということです。
問題1について、ch3coohさんが計算してくださった「期待値は 38/15 cent 」を検証してみます。

かかった費用をXとして、X=Aである確率をP(X=A)で表すことにします。
ガムの自動販売機の中には、赤が6個、白が4個が入っています。

(蛇足ながら、P(X=2)+P(X=3)=1です。)

従って、期待値E(X)=2×(7/15)+3×(8/15)=38/15

自動販売機にあるガムの色がほぼ平等にしかもふんだんにあるとする と、計算の仕方が違ってきますね。
赤白ともに、出る確率は1/2と考えられます。
かかった費用をYとして、Y=Aである確率をP(Y=A)で表すことにします。

従って、期待値E(Y)=2×(1/2)+3×(1/2)=5/2

ch3coohさん曰く「Q2,Q3 の期待値を筆算で求めるのは大変です。」ということです。
私も同感ですが、この前提(自動販売機にあるガムの色がほぼ平等にしかもふんだんにある)なら計算できるかな?

問題2について、赤白青のガムがほぼ平等にしかもふんだんにあるとします。
かかった費用をXとして、X=Aである確率をP(X=A)で表すことにします。

P(X=2)+P(X=3)+P(X=4)=1を確認できます。

従って、期待値E(X)=2×(1/3)+3×(4/9)+4×(2/9)=26/9

問題3について、三つ子に対して赤白青のガムがほぼ平等にしかもふんだんにあるとします。
かかった費用をXとして、X=Aである確率をP(X=A)で表すことにします。

P(X=3)+P(X=4)+P(X=5)+P(X=6)+P(X=7)=1を確認できます。

従って、期待値E(X)=3×(1/9)+4×(2/9)+5×(8/27)+6×(20/81)+7×(10/81)=409/81≒5.05







E-mail 戻る top