1A2B猜数字游戏(bulls and cows)

参加了专栏活动,但是完全没有头绪。。。分享一个我坐车无聊时喜欢玩的游戏吧
鉴于我只是一个坐车无聊时候玩玩这个游戏的渣渣,本文可能有错误,欢迎指正。
1. 起源
根据百度百科的说法,这个游戏起源于英国,叫作bulls and cows。
2. 玩法和举例
人机游戏为例,系统事先准备好一个数字
四位数字比较常见,其他位数也可,以下用四位数字举例
一般,每位数字从0到9中选取
每位数字互相不重复,如1044、2323、7547都不可以,不过也有可以重复的版本,以下用互不重复的版本举例
然后,玩家在知道是几位数的情况下,开始猜这个数字

那咱们猜个 1 2 3 4
系统会把玩家猜测的数字和正确答案作对比,给出提示
系统:[0 A 0 B]
这是什么意思呢?几A表示数字对、位置也对的有几个;几B表示数字对、位置不对的有几个。在例子中,[0 A 0 B]表示猜的 1 2 3 4 跟正确答案一毛钱也对不上,正确答案里没有这四个数字。

咱们继续猜 5 6 7 8
系统:[0 A 2 B]
[0 A 2 B]说明 5 6 7 8 里面有两个数字是正确答案里的,但是位置不对。除此之外还可以知道,既然1到4里没有,5到8里只有两个,那剩下两个9和0必然是在正确答案里了。

猜 5 6 9 0
系统:[1 A 2 B]
1 A 出现啦,说明 5 6 9 0 里出现了一个在正确位置的数字。5和6的位置没有动过,根据前面系统提示,它们俩不可能是那个在正确位置的数字,所以后面两个9和0其中有一个才是在正确位置的数字!
已知9和0必然是在正确答案里。
那么9和0中,一个是数字对、位置对,一个是数字对、位置不对,它们俩提供了1个A和1个B。前面的5和6则提供另一个B,即5和6中只有一个数字在正确答案里,并且位置不对。根据前面系统提示,7和8中也只有一个数字在正确答案里。

猜 5 7 9 0
系统:[1 A 2 B]
已知5和6中,只有一个在正确答案中;7和8中,只有一个在正确答案中。
只有两个可能:一、5在正确答案中,那么6不在,用7替换6,可是系统提示没有变,说明7和6一样都不在正确答案中。二、6在正确答案中,那么5不在,用7替换6,可是系统提示没有变,说明7和6一样都在正确答案中。

猜 5 8 9 0
系统:[1 A 1 B]
嗯?用8替换7后,少了一个B,说明8不在正确答案中,而7在正确答案中,那么可知6也在正确答案中,而5不在。

猜 6 7 9 0
系统:[2 A 2 B]
恭喜恭喜,这四个数就是正确答案里的那四个了,就是有两个位置还不对。A的数量+1了,除了9和0里有一个位置对以外,6和7里也出了个位置对的呢。前面 5 7 9 0 的时候,A也没见增加,说明7不在第二位,7不是那个A增加的原因,那么6就是A增加的原因啦,我们知道了6的正确位置在第一位。

猜 6 0 9 7
系统:[4 A 0 B]
猜了一下9和0里,9是那个位置对的数字,于是交换了0和7的位置。猜对啦,正确答案就是6097啦!

上面例子缩写版本,如下:
1 2 3 4 [0 A 0 B]
5 6 7 8 [0 A 2 B]
5 6 9 0 [1 A 2 B]
5 7 9 0 [1 A 2 B]
5 8 9 0 [1 A 1 B]
6 7 9 0 [2 A 2 B]
6 0 9 7 [4 A 0 B]
3. 碎碎念
这个游戏可以引出一些数学问题的思考呢。比如采取什么策略可以在最倒霉的情况下尝试的次数最少。比如采取什么策略可以让所有情况的尝试次数的平均数最少。数学渣渣的我表示看百度百科的解释头痛。。。没懂抱歉(捂脸)
啊写作文好难啊,只是写一个小小科普就好难啊QAQ,也不知道讲清楚了没有, 大大们写得通俗易懂又有趣都好厉害。
鉴于我只是一个坐车无聊时候玩玩这个游戏的渣渣,本文可能有错误,欢迎指正。
本文参考了百度百科里“猜数字”这个词条。