数学猜想--猜数字游戏

前段时间用python写的一个猜数字游戏,游戏规则:系统随机生成1-9的4位数字,由用户进行猜测,每次猜测反馈结果:nAnB,nA分别表示猜对数字和位置的个数,nB表示猜对数字但未猜对位置的个数,例:随机数字是’1234‘,猜测数字是’1328‘,反馈结果:1A2B,表示本次猜测有1位(数字1)数字对且位置对,有2位(数字2、3)数字对但位置不对。

试证明:根据游戏规则,最多有6次机会,肯定能猜对数字。

以下是电脑训练的结果,哪位数学大神可以证明一下:)

➜ python python3 -c "import guess;guess.guessTrainner(1)"
['6', '7', '5', '1']
第1步----尝试:2581----反馈:1A1B----排除可能答案:2544个
第2步----尝试:9568----反馈:0A2B----排除可能答案:361个
第3步----尝试:5931----反馈:1A1B----排除可能答案:96个
第4步----尝试:1984----反馈:0A1B----排除可能答案:21个
第5步----尝试:6751----反馈:4A0B----排除可能答案:1个
猜数字成功,总用时:0.074215秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['6', '5', '2', '4']
第1步----尝试:6124----反馈:3A0B----排除可能答案:3004个
第2步----尝试:3124----反馈:2A0B----排除可能答案:8个
第3步----尝试:6125----反馈:2A1B----排除可能答案:10个
第4步----尝试:6154----反馈:2A1B----排除可能答案:1个
第5步----尝试:6524----反馈:4A0B----排除可能答案:0个
猜数字成功,总用时:0.056674秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['2', '6', '4', '7']
第1步----尝试:3719----反馈:0A1B----排除可能答案:2304个
第2步----尝试:5362----反馈:0A2B----排除可能答案:502个
第3步----尝试:1254----反馈:0A2B----排除可能答案:167个
第4步----尝试:6475----反馈:0A3B----排除可能答案:47个
第5步----尝试:2647----反馈:4A0B----排除可能答案:3个
猜数字成功,总用时:0.397977秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['9', '5', '6', '3']
第1步----尝试:3867----反馈:1A1B----排除可能答案:2544个
第2步----尝试:9168----反馈:2A0B----排除可能答案:455个
第3步----尝试:9263----反馈:3A0B----排除可能答案:23个
第4步----尝试:9463----反馈:3A0B----排除可能答案:1个
第5步----尝试:9563----反馈:4A0B----排除可能答案:0个
猜数字成功,总用时:0.078264秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['3', '2', '5', '7']
第1步----尝试:5213----反馈:1A2B----排除可能答案:2844个
第2步----尝试:5732----反馈:0A4B----排除可能答案:176个
第3步----尝试:2573----反馈:0A4B----排除可能答案:3个
第4步----尝试:3257----反馈:4A0B----排除可能答案:0个
猜数字成功,总用时:0.024978秒,总步数:4。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['1', '7', '9', '5']
第1步----尝试:7215----反馈:1A2B----排除可能答案:2844个
第2步----尝试:2675----反馈:1A1B----排除可能答案:148个
第3步----尝试:2713----反馈:1A1B----排除可能答案:29个
第4步----尝试:1745----反馈:3A0B----排除可能答案:1个
第5步----尝试:1785----反馈:3A0B----排除可能答案:1个
第6步----尝试:1795----反馈:4A0B----排除可能答案:0个
猜数字成功,总用时:0.127293秒,总步数:6。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['7', '6', '5', '9']
第1步----尝试:7218----反馈:1A0B----排除可能答案:2784个
第2步----尝试:4319----反馈:1A0B----排除可能答案:228个
第3步----尝试:4256----反馈:1A1B----排除可能答案:10个
第4步----尝试:6358----反馈:1A1B----排除可能答案:1个
第5步----尝试:7659----反馈:4A0B----排除可能答案:0个
猜数字成功,总用时:0.033935秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['2', '5', '6', '7']
第1步----尝试:2976----反馈:1A2B----排除可能答案:2844个
第2步----尝试:2761----反馈:2A1B----排除可能答案:172个
第3步----尝试:2169----反馈:2A0B----排除可能答案:4个
第4步----尝试:2367----反馈:3A0B----排除可能答案:1个
第5步----尝试:2467----反馈:3A0B----排除可能答案:1个
第6步----尝试:2567----反馈:4A0B----排除可能答案:1个
猜数字成功,总用时:0.028516秒,总步数:6。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['7', '5', '2', '8']
第1步----尝试:6741----反馈:0A1B----排除可能答案:2304个
第2步----尝试:2875----反馈:0A4B----排除可能答案:714个
第3步----尝试:7258----反馈:2A2B----排除可能答案:4个
第4步----尝试:7528----反馈:4A0B----排除可能答案:1个
猜数字成功,总用时:0.029864秒,总步数:4。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['5', '4', '8', '7']
第1步----尝试:8357----反馈:1A2B----排除可能答案:2844个
第2步----尝试:3687----反馈:2A0B----排除可能答案:168个
第3步----尝试:3517----反馈:1A1B----排除可能答案:9个
第4步----尝试:5287----反馈:3A0B----排除可能答案:1个
第5步----尝试:5487----反馈:4A0B----排除可能答案:1个
猜数字成功,总用时:0.033743秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['8', '5', '2', '7']
第1步----尝试:1582----反馈:1A2B----排除可能答案:2844个
第2步----尝试:8514----反馈:2A0B----排除可能答案:168个
第3步----尝试:2513----反馈:1A1B----排除可能答案:6个
第4步----尝试:8526----反馈:3A0B----排除可能答案:4个
第5步----尝试:8527----反馈:4A0B----排除可能答案:1个
猜数字成功,总用时:0.035246秒,总步数:5。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['3', '7', '8', '5']
第1步----尝试:2984----反馈:1A0B----排除可能答案:2784个
第2步----尝试:1734----反馈:1A1B----排除可能答案:192个
第3步----尝试:1587----反馈:1A2B----排除可能答案:44个
第4步----尝试:3785----反馈:4A0B----排除可能答案:3个
猜数字成功,总用时:0.340922秒,总步数:4。
➜ python python3 -c "import guess;guess.guessTrainner(1)"
['9', '1', '8', '6']
第1步----尝试:8617----反馈:0A3B----排除可能答案:2804个
第2步----尝试:7138----反馈:1A1B----排除可能答案:172个
第3步----尝试:6278----反馈:0A2B----排除可能答案:42个
第4步----尝试:4186----反馈:3A0B----排除可能答案:4个
第5步----尝试:5186----反馈:3A0B----排除可能答案:1个
第6步----尝试:9186----反馈:4A0B----排除可能答案:0个
猜数字成功,总用时:0.335484秒,总步数:6。

posted @ 2020-07-08 15:49  funolove  阅读(1059)  评论(0编辑  收藏  举报