《Vivaslots》算法系列一

xiaoxiao2021-02-28  73

1、数值基础

       必备知识1:基础概率论-独立事件的概率问题:

     样本总数=独立事件1*独立事件2*独立事件3….

     单一样本的概率=(单一样本的出现次数)/(样本总数)

  

       明确了基础概率论中的独立事件概率算法后,再来说说老虎机中的两个约定,

   第一老虎机转动的卷轴规划为真实卷轴模式(也就是说每一条卷轴上面的符号排序是固定的-对复杂老虎机的数值计算非常有帮助);

   第二、常用名词:

       回收率:指在理想情况中,玩家“每次获得的”和“每次付出的”所成的比率(例如:回收率为50%时,在理想情况中每付出100后会返还50--付100找50);

      中奖率:顾名思义,中奖率是指的玩家在理论上每次抽奖能够中奖的概率;

      倍率:相对于下注码给玩家的回报倍数;

      权重:是指单一样本,在一个整体样本中所占有的比重,通常用整数表示。

--------------我是分割线---------------

 

2、一些简单的例子

例一、那么我们就从实例出发,讲讲最简单的情况:

  首先,我们考虑最简单的情况——卷轴为单列,且只有中奖和不中奖的区别

                 

                 1_2_1  最简单的形式

  相信这种单列的,大家看到了就能明白是什么回事。

  这里我们设置中奖获得倍率为1 的回报。

  且有

中奖的权重=1

不中奖的权重=1

   所以

 回收率=((中奖次数)*倍率)/(样本总数)*100%=1*1/2*100%=50%

 中奖率=(中奖次数)/(样本总数)*100%=1/2*100%=50%

 

通过这个简单的例子是不是对这种算法有那么一点点的思路了。

 

 

例二、 接下来我们看第二个例子,这一回我们挑战难度稍微高一点的。来考虑一下两列的情况:

     

            1_2_2     两列的情况

首先简单地设置一下奖项:

 奖项一,单列中奖获得 倍率为1的回报;

     奖项二,两列同时中奖 获得 倍率为2 的回报;

  

那么,一共会有以下四种情况从出现

1.  中奖|中奖           

   出现权重(次数)为1*1=1    

   获得奖项二;

2.  中奖|不中奖        

   出现权重(次数)为1*1=1    

   获得奖项一;

3.  不中奖|中奖        

   出现权重(次数)为1*1=1    

   获得奖项一;

4.  不中奖|不中奖    

   出现权重(次数)为1*1=1    

   未中奖;

 

那么

回收率=(((奖项一次数)*倍率)+(奖项二次数)*倍率))/(样本总数)*100%=2*1+1*2/4*100%=100%

中奖率=(中奖次数)/(样本总数)*100%=3/4*100%=75%

 

        这里当回报的倍率变得不同的时候,中奖率和回收率也变得不同了。其实这也是很好解释,这里也可以很好去对回收率做一个理解了。

 

     大家在这两个简单的例子中是不是有一些体会了呢?我相信是有的,

     我也一直坚信一件事情,事物的发展都是由易到难的,所以当自己掌握最基础的东西之后,也会慢慢的知道那些难得东西是怎么得出来的。

-------------------

如何使用EXCEL 表格来对数值进行理论模拟。另外,为了避嫌以后改叫Vivaslots。

关键知识:第一章中所提到的基础知识;Excel函数Sum、Vlookup、Mid等;

 首先我们来看看如图2-1所示的卷轴

        2-1   3x1卷轴

 其中假设中奖赔率如下:

  AAA:10

  BBB:5

  CCC:3

  DDD:1

那么根据已知的数据我们可以很快的算出来:

 样本总数=10*10*10=1000

     AAA=2*1*1=2=2

     BBB=1*1*2=2

     CCC=1*1*1=1

     DDD=1*2*1=2

中奖率=(2+2+1+2)/1000*100%=0.7%

回收率=(2*10+2*5+1*3+1*2)/1000*100%=3.5%

    这样,我们就能知道这台机器的回收率和中奖率分别是多少了。那么,当我们想调整其他中奖率和回收率的时候,有两种方法:

   第一种将卷轴中的符号换成其他符号。

        比如说将第一列的中的某一个空行换成”A”,那么”AAA”出现的权重则变成了AAA =3*1*1=3,中奖率则变成”0.8%”,回收率变成”4.5%”。

       这种做法好处就在于分母是不变的,当我们选用列长为10的倍数的卷轴时,其回收率和中奖率调整将变得非常好控制。

       不过这么做在后期还是会出现一系列问题,所以现在不考虑这个,而且我们需要尽可能简单易行的方法。

    第二种通过表格直接模拟,这里我们将卷轴先简化如图2-2

   图2-2   整合后的数据

此处先将各符号整合在一起方便计算和调整,然后如图2-3所示做表

2-3  数值调整的格式

   此时我们将各个中奖类型及其相关信息分别填入表中,并使用vlookup函数将各列中符号所占有的权重检索出来。

   总权重一栏使用sum函数求出本列权重和;

​   样本总数”一栏使用公式,

      样本总数=第一列总权重*第二列总权重*第三列总权重

求得样本总数;

   中奖率一栏使用公式

     单一样本的概率=(第一列权重*第二列权重*第三列权重)/(样本总数)

求出单个中奖类型的出现次数(这里可以通过修改单元格格式,让其显示为百分比);

  回收率一栏则可以通过倍率*中奖率获得

  最终中奖率最终回收率则将中奖率回收率求和即可。

  这样一个简单的模拟表格就做好了,你可以通过修改各个符号所占用的权重来达到调节中奖率和回收率的效果,比如说将按照第一种方法中的修改方式:

     图2-4  按照方法一修改后的表格

    这样就能通过自己的调节达到自己想要的效果利用表格的最大好处在于他并不要求你具备太强的数学知识,只需要简单的知道应该把哪几个数乘起来或者哪几个数加起来。另外他也不会限制于卷轴的形式,可以调好中奖率回收率后再去排列卷轴就好了(毕竟排列卷轴这种事情还是很轻松愉快的)。

--------------------

随着现在市面上的游戏越来越多,玩家对游戏玩法多样性的要求也越来越高了。对于一个游戏而言,随着他的发展也会需要用更多的玩法来吸引和留住玩家。今天我们就来简单的介绍介绍几种Vivaslots的玩法设计和数值设计技巧。

 市面上常见的Vivaslots机器有两种规格——3*3型和5*3型(如下图)。   

3-1  3*3型的机器(图片来源于网络)

3-1  5*3型的机器(图片来源于网络)

中奖类型有3X13X35X15X3,其中3X15X1为简单中奖类型,使用之前的两讲的做法就可以很快的计算出来。3X35X5这相对复杂一些,因为在一次摇奖中需要对多个组合进行判断。但是今天我们先不讲这个类型的,因为他算是更加进阶的做法了,表格的搭建和之前还是有一些区别的。今天我们主要讲基于简单中奖类型的进阶玩法。

   我们仍然以3*3的机器类型为例子,如下图:  

  3-3 3*3型机器设计模板

可以分为三种设计类型:

  第一种类型:使用辅助列作为额外的游戏结算因素——辅助列仍可做扩展;

  第二种类型:在特定条件下,激活游戏机制(可以是暴击奖励、重复摇奖等);

  第三种类型:跳脱常规与其他游戏结合,比如说VivaRpgVivaFpsVivaRtsVivaSlgViva…这些就只有想不到,没有做不到。哈哈哈哈,开个玩笑!不过这确实一种可行的游戏制作方法,也是在立项阶段常用的设计思路。大家可以多思考思考,这里不做过多的解释!

 

明确设计类型之后,我们稍微提一下一个系统设计时所常用的设计办法——系统分离

 什么是系统分离呢?简单的说就是将一个系统变成两个或多个独立的系统,然后再将其复原为一个整体(类似中学时期的分离变量法)

  这里我们只取其设计想法,并将其运用于我们后面的数值设计制作中。下面我们以第一种类型和第二种类型分别设计两个玩法,并以此为基础运用系统分离的想法来计算数值。

 

第一种玩法:利用辅助列的符号对中奖结果进行加成(进行乘法加成,比如说辅助列给出X25的符号,则中奖结果乘以25)。

  考虑到中奖结果和辅助列结果可以视作两个独立的事件,所以我们可以将两个内容分离考虑如图3-4:

    3-4 辅助列直接加成的玩法

其中卷轴部分为设计的常规部分,中奖组合部分按照之前讲的做。在辅助列部分中,同样使用权重的做法对各种出现的符号进行权重赋值,并据此计算出辅助列对中奖结果的期望加成。比如25倍奖励的出现几率为3.7%(在数组中的权重为10),于是25倍符号能带来的收益加成=组合中奖结果*0.037*25=组合中奖结果*0.0925

第二种玩法:玩家在中奖后,一定几率重复获得该奖励(可重复获得重复奖励);

     这里我们将重复获奖的几率单独拿出来进行计算,设计如图3-5所示:

    3-5 中奖后几率触发重复获奖机制

  这里为了降低连续中奖的可能性,所以对连续中奖后的机制权重做了一个处理。即每次重复出现机制,那么不出机制的权重会增加一个原始权重的数值(未出机制时:不出机制权重为6;出一次机制时:不出机制权重变为12;出两次机制时:不出机制权重变为18)

  在此基础上,可算出机制为最终结果带来的期望加成,并将其合并与中奖结果中即可;比如使用图3-5中的数值算出的数值期望为0.666667,相当于每次中奖都多获得0.521倍的奖励,于是最终结果=组合中奖结果*(1+0.666667)

  期望的计算:1.使用近似法,因为连续中奖的几率问题,可以知道当连续中奖的几率会变得非常小以至于其带来的收益可以忽略不计。2.使用vba写个简单循环算的(也可以直接算,但是这里我懒得算了,因为代码更简单点),代码如下:

01 Sub Qiwang ()

02 a = 输入连中次数

03 yes = 输入出机制的权重

 04  no = 输入不出机制的权重

 05  b = 0

 06  c = 1

07  d = 0 '''''''''''用于储存期望

08 For i = 1 To a

 09  b =yes / (yes + no * i)

 10 c =c * b

 11 d =d + c*i

 12  Next

13 End Sub

 像这种类似的还可以是:当摇到某个符号后除这个符号外,其他符号重置,并累计摇奖奖励作为最终的奖励结果(此时将中将组合分类,并将不同类别分开计算);当我摇到特定组合后,出现奖金池机制,玩家可在奖金池中获得奖励(此时只需将奖金池单独拿出计算,并将其的期望收益赋予特定组合即可)等等。

--------------------------------

 今天我们来讲一讲3*3队列的情况,在3*3队列下所使用的基本规则是不变的,只不过是以前只用判断3*1的简单组合,而现在需要判断3*3的阵列组合。但因为我们的奖励类型是3*1的所以在一个3*3阵列中会存在很多3*1的中奖类型,如下图所示:

                                                                                                4-1  3*3组合

    如图所示,我已经标出了部分可以用来兑换奖励的位置组合,分别是蓝11绿1、蓝22绿2、蓝33绿3、蓝12绿3、蓝32绿1五种情况(之后直接使用111222333123321表示)

  这种情况与一列的情况相比,所需要考虑的事情其实是一样的。使用每一个符号在其中奖位置所出现的权重,并根据各位置的权重去计算此情况所出现的概率,最后算出总中奖率和总回收率并以此对相关权重进行调整即可。

  只不过是说,因为采用了真实卷轴的原因,所以各个符号有了一定的相关性。但恰巧因为这种相关性,而让事情变得简单了很多。那么,下面我们就来看看如何使用Excel来模拟这个模型的概率,从而获得中奖率和回收率。 

                                                                                                                              4-2 卷轴符号及其权重

     如上图所示,我们设定卷轴中的符号一共有六个——ABCDE空行。接下来我们将三列的符号进行一个排序,为了让各列有一定区别,符号排列如下图所示:

                                                                                4-3 各列卷轴的符号分布及其权重

这里我已经将每一列的符号按照卷轴的顺序进行了排序,并将其所在的位置进行了标记。然后使用vlookup函数在图4-2中找出了所有符号的权重值,最后将各列的权重算出,并算出总体权重(以便后面算中奖率和回收率)

在继续往下讲解之前,我们应该先明确一个想法,如上图中最终组合一栏所示,我将每个符号向下再取两个符号,并将其组合成了一个新的组合。这里这么做的原因如下

更清楚的模拟表格结构。

方便计算。

更好的表格结构就不过多的解释了,这样子将所有内容展现出来当然是一目了然的。为什么会说更好的计算呢?这里我们还是去考虑之前讲过的分解法,假设我们直接去判断每个3*3组合中分别会中什么奖励,那么我们将可预见的知道会出现一个3*3组合对应多个中奖类型,且这些中奖类型的复合性不定从而大致出现大量规律复杂的情况。那么,如果我们这么去考虑,某种奖励对应什么样子的组合。是不是这时我们可以将这种复合不确定性大大减少,且奖励类型是我们可知的、组合类型也是我们可知的。最后我们只需要将最简单的一些东西列出来,并使用EXCEL的一些简单公式就能将我们最终想要的中奖率和回收率算出来了。

这里我假设有五种中奖类型分别是AAABBBCCCDDDEEE,五种中奖的位置组合分别是111222333123321,如下图所示:   

                                                                                    4-4中奖类型以及位置类型

上面我已经将各个中奖类型列出,并列出其的每一个位置类型。接着将每一个中奖类型和位置类型的组合分别在各列中找出去所对应的组合以及组合的权重,并使用之前的公式算出该组合的总权重。

比如说,中奖类型AAA与位置类型111的组合,我们可以通过sumif函数,在第一列中找到所有符合一号位为A的组合,并将其权重相加。然后同样的操作在第二列中找到所有符合一号位为A的组合,以及第三列中一号位为A的组合,并将其相加。最后分别得到三列中复合条件的组合的权重,将机器相乘得到总权重,最后乘上倍率获得最终的权重值。

结合图4-3中的总体权重,利用公式P=a(i)/A得到各列中的中奖率和回收率。最后我列出了各个中奖类型和总体的中奖率及回收率,以方便我们在调整数值时对整体情况的一个把握。

好了,3*3模型的一个简单搭建过程完成了。下一讲,我们将接着讲3*3模型的一些其他内容,比如说程序摇号逻辑、捆绑法的验证等内容。

转自: http://gad.qq.com/u/profile/113169

转载请注明原文地址: https://www.6miu.com/read-1950380.html

最新回复(0)