一个游戏
不知道屏幕前的你是否也玩过这样的一个游戏,在游戏里,你可以将两个低等级的单元可以合成为一个次高等级的单元,而两个次高等级的单元可以合成为一个高等级的单元,而这样的合成游戏中,往往也会具有网格的限制,每一个单元都会占据一个网格,而总的网格是有限的,并且在网格中添加单元时,只能添加最低的等级的单元。那总的网格数与我们单元的最高等级之间是否有一定的数学关系呢?想必是有的,先来带大家看一下我最近玩过的一款游戏,是一款合成恐龙的游戏。

这张图片就表现出了网格的概念,每一个单元占据一个网格,而一共有151515个网格,并且每两个同等级的单元可以合成为一个高等级的单元。
问题分析与解决
分析
遇到了逢二进一的问题,我们首先就会想到二进制的问题。的确,我们在探究一个有151515个网格可以放置的最大的单元等级是多少的问题时,我们可以采取这样的思路,将我们的操作分成了两个操作:添加操作与融合操作。添加操作即每次往这些网格中放置一个最低等级的单元(这也是问题的一个限制),融合操作为将满足融合条件(同一等级的单元数量大于等于222)的单元进行融合。并且,为了最大化我们的网格空间,我们将融合操作的优先级放到添加操作的前面。我们前面提到,这样的一个问题是一个二进制逢二进一的问题,即完全可以将这个问题看作一个二进制计数的问题。
抽象
按照我们上述的规定,融合操作优先级大于放置操作优先级,那这个问题已经转化为了一个二进制计数的问题。我们先把网格数量减少到333。我们先添加一个最低单元,二进制数代表为(1)(1)(1)。此时没有满足融合条件,我们继续添加。现在有两个最低等级的单元,但还没有融合,我们找不到一个合适的二进制数对其进行表示,我们规定一个二进制数(02∗)(02*)(02∗),这里的′∗′'*'
二进制策略解密:游戏中的单元等级与网格数关系

最低0.47元/天 解锁文章
43





