合成游戏中的数学原理

一个游戏

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

这张图片就表现出了网格的概念,每一个单元占据一个网格,而一共有 15 15 15个网格,并且每两个同等级的单元可以合成为一个高等级的单元。

问题分析与解决

分析

      遇到了逢二进一的问题,我们首先就会想到二进制的问题。的确,我们在探究一个有 15 15 15个网格可以放置的最大的单元等级是多少的问题时,我们可以采取这样的思路,将我们的操作分成了两个操作:添加操作与融合操作。添加操作即每次往这些网格中放置一个最低等级的单元(这也是问题的一个限制),融合操作为将满足融合条件(同一等级的单元数量大于等于 2 2 2)的单元进行融合。并且,为了最大化我们的网格空间,我们将融合操作的优先级放到添加操作的前面。我们前面提到,这样的一个问题是一个二进制逢二进一的问题,即完全可以将这个问题看作一个二进制计数的问题。

抽象

      按照我们上述的规定,融合操作优先级大于放置操作优先级,那这个问题已经转化为了一个二进制计数的问题。我们先把网格数量减少到 3 3 3。我们先添加一个最低单元,二进制数代表为 ( 1 ) (1) 1。此时没有满足融合条件,我们继续添加。现在有两个最低等级的单元,但还没有融合,我们找不到一个合适的二进制数对其进行表示,我们规定一个二进制数 ( 02 ∗ ) (02*) 02,这里的 ′ ∗ ′ '*' 代表的是逢二已满,但没有进位的中间态。此时,占据的网格数量是2,然后进行融合操作,融合为一个高等级的单元,对应的二进制数代表为 ( 10 ) (10) 10,占据一个网格。
      如果想融合成一个等级为三的单元,我们需要几个一级单元呢?很明显是 4 4 4个,那 4 4 4个等级为一的单元是如何被放置在这些网格上的呢?很明显在之前 ( 10 ) (10) 10的基础上,又增添了两个,随后变成了 ( 12 ∗ ) (12*) 12,再次融合变成 ( 2 ∗ 0 ) (2*0) 20,再次融合变成 ( 100 ) (100) 100
      即融合成一个三级的单元,需要至少三个网格,我们这里的网格数定义为二进制数上的每一位代表的数量之和,即所需要的最少的网格数等于在整个添加、融合过程中二进制数上每一位之和的最大值(包括中间态),在二进制合成游戏下,我们想融合一个等级为 N N N的单元,至少需要 N N N个网格。

拓展

      倘若存在三进制的单元游戏,或者多进制的单元合成游戏( M M M进制),那生成一个等级为 N N N的单元至少需要多少个网格呢。倘若生成等级为 N N N的单元,可知其对应的 M M M进制数的第 N N N位应该为零,从第一位到第 ( N − 1 ) (N-1) N1位,都不为 0 0 0。并且首位为 M M M,其余位为 ( M − 1 ) (M-1) (M1),即所占据的网格数量为: ( M + ( N − 2 ) ( M − 1 ) ) = ( M N − M − N + 2 ) (M+(N-2)(M-1))=(MN-M-N+2) (M+(N2)(M1))=(MNMN+2),将 M = 2 M=2 M=2代入可得在二进制下,这个关系为 N N N

验证

      倘若我们的计算无误,那上述提到的那款小游戏所生成的单元的最大等级不会超过 15 15 15,倘若超过 15 15 15,则无法进行合成。同时,小游戏中有两类角色,所以每个角色的最高等级不会超过 14 14 14。通过查看游戏图鉴可知,两类角色的最大等级均为 11 11 11,可知,游戏内部还是有其合理性的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值