この Hit & Blow で用いている 「よかとき(コンピュータ)の戦法」 について (記:2025年 1月16日)
あなたが決めた異なる4つの数字を、よかとき(コンピュータ) が当てる場合の、よかときの戦法について述べる。
(1) この段階ではまだ何の情報もない。あなたの決めた4つの数字の組は、N=10×9×8×7=5040 個のうちの
ひとつである。そこで、よかときは TRY-1 ではこのうちからランダムに選択する。これらを (T0,T1,T2,T3)
とする。
(3} これに対して、あなたは HとB を与える。H=h B=b として以下説明する。
(4) あなたの決めた数が (T0,T1,T2,T3) に対して H=h B=b であるということは、(T0,T1,T2,T3)に対し
て H=h B=b であるものの内にあなたの決めた数があるということである。N=5040 個のうち、それだけ
を残せばよい。
(4) 以下同様にして、N=1 になるまで TRY を行なえばよい。
基本的な考え方はこれだけである。性能のよいコンピュータを用いるならば、この戦略にしたがったコード
で完全探索を行なえばよい。私の何年か前に購入したパソコンでは、少々時間が掛かり過ぎてゲームとしては
退屈である。そこで、私のやり方は次のようにした。
私のやり方
(1) TRY-1:ランダムに異なる4つの数字を選ぶ
TRY-1に対して、H=2 B=2 または H=1 B=3 または H=0 B=4 のときは 以降は4つの数字を適当に入れ替え
たものを試す。これら以外の H B の場合には、
(2) TRY-2:TRY-1 で用いた数字以外の4つの数字をランダムに選ぶ。
(3) TRY-2 以降は、可能性として残されたものの数が減るので完全探索を行う。
あなたが最初に決めた数字を、H B に矛盾しない範囲で変更する場合でも、このやり方を用いる。
以上である。
【参考】------------------------------------------------------------------
決められた異なる4つの数を、私のやり方で よかとき(コンピュータ) に当てさせることをシミュレーション
した結果を示す。このシミュレーションでは、最初に決められた4つの数は途中で変更しないものとして
いる。
TRY-1 での H B の値は、次の 14 通りある。すなわち
H=4 B=0 H=2 B=2 H=1 B=3 H=0 B=4
H=3 B=0 H=2 B=1 H=1 B=2 H=0 B=3
H=2 B=0 H=1 B=1 H=0 B=2
H=1 B=0 H=0 B=1
H=0 B=0
これらの場合に、よかとき(コンピュータ)が当てるまでの TRY 回数を調べた。H=4 B=0 は除いて、シミュ
レーションの回数はそれぞれの場合で 100000回 行なった。その結果を下の表に示す。何回目で当てたか
を割合(%)で、また当てるまでの回数の平均値 Average を示している。
H=2 B=2 H=1 B=3 H=0 B=4 H=3 B=0 H=2 B=1 H=1 B=2 H=0 B=3
TRY-1
TRY-2 16.654 11.089
TRY-3 33.413 24.936 33.496 12.663 4.250
TRY-4 33.383 50.132 44.444 29.030 29.125 12.490 8.658
TRY-5 16.550 24.932 10.971 33.273 55.530 49.702 36.342
TRY-6 25.034 11.095 36.686 48.992
TRY-7 1.122 5.989
TRY-8 0.019
TRY-9
Average 3.498 4.000 3.553 4.707 4.735 5.264 5.524
H=2 B=0 H=1 B=1 H=0 B=2 H=1 B=0 H=0 B=1 H=0 B=0
TRY-1
TRY-2 0.308
TRY-3 0.085 0.089 0.276
TRY-4 18.316 6.660 4.191 9.281 3.819 14.360
TRY-5 49.983 38.877 27.549 43.001 22.898 50.970
TRY-6 31.503 47.101 53.021 44.6.5 51.864 32.863
TRY-7 0.138 7.310 14.840 3.106 20.682 1.223
TRY-8 0.052 0.314 0.007 0.648
TRY-9
Average 5.135 5.552 5.793 5.416 5.912 5.195
TRY-1 で H=2 B=2 の場合、2〜5回で当てていて、平均は 3.498回 である。他の場合も同様であるが、TRY-1
での HBの値によって当てるまでの TRY回数が異なる。
ここで用いた戦法が最善である保証はなく、また試行回数 100000回 と言えどもシミュレーションであって
数学的に厳密な証明ではないので、TRY回数がもっと少なくて当てることができるかも知れないし、あるいは
当てるまでの TRY回数が多くなることがあるかも知れないことは、述べておかなくてはならない。
もし、最初に決めた4つの数を、HBに矛盾しない範囲で変更してもよいとする場合には、相手に当てられ
るのを遅くするには、TRY-1 で H=0 B=3、H=1 B=1、H=0 B=2、H=1 B=0、H=0 B=1 のいずれかにしたらよいこと
が分かる。そうすると、8回以下では当てられないようにすることが可能である。
この Hit & Blow -A では、よかとき(コンピュータ)が決めた4つの数をあなたが当てるものであるが、最初の TRY-1
で、H=4 B=0 を除いた 13通りのうちからランダムにひとつ選択している。そして
H=2 B=2 なら トライ制限回数=5
H=1 B=3 なら トライ制限回数=5
H=0 B=4 なら トライ制限回数=5
H=3 B=0 なら トライ制限回数=6
H=2 B=1 なら トライ制限回数=6
H=1 B=2 なら トライ制限回数=7
H=0 B=3 なら トライ制限回数=8
H=2 B=0 なら トライ制限回数=7
H=1 B=1 なら トライ制限回数=8
H=0 B=2 なら トライ制限回数=8
H=1 B=0 なら トライ制限回数=8
H=0 B=1 なら トライ制限回数=8
H=0 B=0 なら トライ制限回数=7
に設定している。
したがって、このシミュレーションで用いた戦法がもし最善であるなら、あなたは最善を尽くさないと成功
できないのだが、このシミュレーションで用いた戦法が最善ではないので、トライ制限回数より少ない回数で
当てることができる。健闘を祈る。
--------------------------------------- 以上 ----------------------------------------
|