この 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 に設定している。 したがって、このシミュレーションで用いた戦法がもし最善であるなら、あなたは最善を尽くさないと成功 できないのだが、このシミュレーションで用いた戦法が最善ではないので、トライ制限回数より少ない回数で 当てることができる。健闘を祈る。 --------------------------------------- 以上 ---------------------------------------- |