浅谈“对分法” 在智力游戏中的应用

有一种猜数游戏:请你随便想一个 1000 以内的自然数,把它写在纸上(以

防记错),不让我看见。我向你提出 10 个问题,对于我提的问题,只需要你

如实地回答“是”或者“不是”。我通过这 10 个问题就能猜出你想的数是多少。

有的人可能不大相信。因为 1000 个数想哪一个都有可能,无目的地去猜,运气不好,就是猜 500 次也猜不到。就是运气好,10 次能猜到的可能性也太小了。为什么通过 10 个问题就保证能猜到呢?这就是巧妙地运用了对分法。比如,你想的数是 872,下面是我对你的提问和你的回答。

①你想的数是大于 500 吗?(把 1000 对分是 500) 是。

②你想的数是大于 750 吗?(把你上次提问的数加上 500 的一半,即 500

+500÷2=500+250。

是。③你想的数是大于 875 吗?(把你上次提问的数加上 250 的一半, 即 750+250÷2=750+125)

不是。

④你想的数是大于 812 吗?(把你上次问的数减去 125 的一半与 0.5 的和,即 875-63)

是。

⑤你想的数是大于 844 吗?(把你上次提问的数加上 63 的一半与 0.5 的和,即 812+32)

是。

⑥你想的数是大于 860 吗?(把你上次提问的数加上 32 的一半,即 844

+16)

是。

⑦你想的数是大于 868 吗?(把你上次提问的数加上 16 的一半,即 860

+8)

是。

⑧你想的数是大于 872 吗?(把你上次提问的数加上 8 的一半,即 868

+4

不是。

⑨你想的数是大于 870 吗?(把上次提问的数减去 4 的一半,即 872-2) 是。

到现在可以看出你想的数大于 870 但不大于 872。只能是 871,872 两数

之一。

已经提问了 9 次,再提问一次,可以问你想的数是 871 吗?(实际上是上次提问数加上 2 的一半即 870+1)

当然你应该回答不是。那么我可以得出结论:你想的数是 872。向你提

的 10 个问题正好猜中。

这种方法实际上是把 1000 连续用 2 去除,依次加在你上次提问的数上或从你上次提问的数中减去(加上的数或减去的数遇到有小数时就四舍五入), 作为本次提问的数。如果你问的“是大于吗”?著对方回答“是”,就用加法;若对方答“不是”就用减法。在提问时,是问“大于”,还是问“小于” 可灵活掌握。不过要注意是用加法还是用减法。这样最多提问 10 个问题,就一定能猜出你想的数。

利用对分法还可以做猜其它东西的游戏。比如猜象棋子。你从一副象棋中随便拿出一个子,我最多向你提出四个问题。你只要如实地回答“是”或“不是”,我就能猜出你拿的是什么子,而且还能猜出颜色。比如你拿的是黑炮。下面是我的提问和你的回答。

①你拿的棋子是红色的吗? 不是。

②你拿的棋子是可以过河的棋子吗?(把卒、车、马、炮与相、士、将区别开)

是。

③你拿的是一次最多能走 4 个格的棋子吗?(把卒、马与车、炮区别开) 是。

④你拿的是黑车吗?(只剩下车和炮) 不是。

⑤你拿的是黑炮。

正好能猜中。如果你拿的是相、士、将之一,那么只须提问三次,便可猜中。

了解了“对分方法”以后,自己就可以编制一些猜数、猜人、猜物的游戏。比如猜扑克牌,猜你校的教师(当然对你校教师要都了解),猜你班上的同学等。编制这种游戏,关键在于如何设计“对分”。严格地说,不一定是“对分”,比如猜你班上的同学,第一个问题可以先问,她是女同学吗? 班上的男女同学不一样多,那么这就不是真正的“对分”。但每次提问的目的都是把范围逐渐缩小,最后猜中目标。如果“对分”得好,提问的次数必然就少。大家不妨可以试试看。

(宏耀)