第8期曾经提供过一个猜数游戏,大家还有印象吧?要想猜中那个数,还真不容易,不过借助一下电脑就容易多了。
  经过分析容易得出,在猜数游戏中,最小的数字是0123,最大的数字是9876,其间一共有10×9×8×7=5040个数字。于是,我们先从0123到9876循环一遍,筛去有重复位数的数字,把它们放入一个大数组中备用。
  然后就很容易了,随机抽取一个数字显示出来,让用户回答使用这个数字进行猜数得到的结果是什么。用户回答了结果后,我们就在整个数组中循环一遍,依次用各个数字作为答案,判断输入了用来尝试的那个数字后得到的提示会是什么。如果提示和用户给出的提示不同,则删去那个数字。
  如法炮制,层层筛选,不一会儿就能猜出正确结果了。以下是一次运行时的截屏: 5040 numbers remained. 9625 What's the response? 2a0b 180 numbers remained. 8621 What's the response? 1a1b 48 numbers remained. 9608 What's the response? 2a2b 1 number remained. 9680 What's the response? 4a0b   一般情况下,即使4次猜不中,6次也应该能猜中了。
  如果你也喜欢猜数游戏的话,不妨下载了看看,挺好玩的。