2048的理论最大值
看到一个很有意思的题目,说2048这款游戏的理论最大值是多少呢?
游戏规则是这样的,游戏在一个 4 × 4 的棋盘上进行,棋盘里填有一个个的“数块”,每个数块上都写有某个形如 2n 的正整数。每一步,你需要从上、下、左、右四个方向中选取一个方向,按下对应的方向键之后,所有的数块都会“落”到这个方向;若有两个同种的数块在此过程中发生碰撞,则它们的值会相加起来,并合成一个新的数块。然后,系统会在棋盘中随机选择一个空白位置,并在此生出一个新的数块,上面写有数字 2 或者数字 4 (两种情况之比为 9 : 1)。游戏开始时,棋盘上会自动生成两个随机的数块,你的目标就是通过有限步的操作,得出一个写有 2048 的数块。当然,即使得到了 2048 这个数块,游戏也不会自动结束,你还可以向更大的数发起挑战。于是就有了我们刚才的问题:理论上,这个游戏当中能够得到的最大的数是多少?
这里先给出答案,最大值为2^17,也就是说,我们永远不可能在 2048 当中玩出 2^18 这个数。
为什么呢?
我查阅过一些博客,好多文章里讲的过于理论化,估计没有一些计算机基础的人不太好理解。因此我这里尽量简单的来说明这个问题。
当我们只有一个格子的时候,我们的最大值为多少呢?
按照规则,最大值肯定为4,即2^(1+1)。
那么两个格子呢?答案是8【2^(2+1)】,因为8会占用一个格子,剩下的一个格子最大值才为4,因此此时肯定形成一个4和一个8的局面导致游戏结束。
那同理,假设我们有三个排成一排的棋牌,我们的理论最大值就为16[2^(3+1)]。
所以,按照上面的规则,四个格子就为32【2^(4+1)】。
最后,我们就可以推出,2048游戏16个格子的理论最大值就为2^(16+1)=131072 。得到这个结果的最后一步一定是这个样子的:
当你把这个过程完成后,整个棋盘上只有一个131072 ,我们无法通过剩余的15个格子来完成另一个131072 ,因此,131072 是整个游戏的最大值。
因此131072就是理论的最大值,那么131073就一定会达到吗?肯定不一定,这跟运气有很大关系。如果最后出现的不是4,而是2像下面这样:
那么此时很明显GAME OVER了。
说完了理论的最大值,我不禁在想,那么2048游戏的理论最小值是多少呢?
不要费脑筋了,是4。
on