现在的位置: 首页 > Personal > 正文

2048的理论最大值

2015年11月22日 Personal ⁄ 共 936字 ⁄ 字号 评论 3 条 ⁄ 阅读 738 次

看到一个很有意思的题目,说2048这款游戏的理论最大值是多少呢?

游戏规则是这样的,游戏在一个 4 × 4 的棋盘上进行,棋盘里填有一个个的“数块”,每个数块上都写有某个形如 2n 的正整数。每一步,你需要从上、下、左、右四个方向中选取一个方向,按下对应的方向键之后,所有的数块都会“落”到这个方向;若有两个同种的数块在此过程中发生碰撞,则它们的值会相加起来,并合成一个新的数块。然后,系统会在棋盘中随机选择一个空白位置,并在此生出一个新的数块,上面写有数字 2 或者数字 4 (两种情况之比为 9 : 1)。游戏开始时,棋盘上会自动生成两个随机的数块,你的目标就是通过有限步的操作,得出一个写有 2048 的数块。当然,即使得到了 2048 这个数块,游戏也不会自动结束,你还可以向更大的数发起挑战。于是就有了我们刚才的问题:理论上,这个游戏当中能够得到的最大的数是多少?

这里先给出答案,最大值为2^17,也就是说,我们永远不可能在 2048 当中玩出 218 这个数。

为什么呢?

我查阅过一些博客,好多文章里讲的过于理论化,估计没有一些计算机基础的人不太好理解。因此我这里用递归的方法来说明这个问题。

当我们只有一个格子的时候,我们的最大值为多少呢?

按照规则,最大值肯定为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 。得到这个结果的最后一步一定是这个样子的:

2048的理论最大值

当你把这个过程完成后,整个棋盘上只有一个131072 ,我们无法通过剩余的15个格子来完成另一个131072 ,因此,131072 是整个游戏的最大值。

因此131072就是理论的最大值,那么131073就一定会达到吗?肯定不一定,这跟运气有很大关系。如果最后出现的不是4,而是2像下面这样:

2048的理论最大值

那么此时很明显GAME OVER了。

说完了理论的最大值,我不禁在想,那么2048游戏的理论最小值是多少呢?

不要费脑筋了,是4。

2048的理论最大值

目前有 3 条留言    访客:3 条, 博主:0 条

  1. 小刺毛 2015年11月29日 下午7:49  Δ-9楼

    有没有技巧。。。 😯


    • 管理员
      admin 2015年11月29日 下午8:07  ∇地下1层

      向我祈祷,哥哥会知道的


      • 管理员
        admin 2015年11月29日 下午9:51  ∇地下2层

        测试