Selphie的Slot的规律(不算规律的规律)(五次更新)
2004-09-16 18:59 | bsp
第五次更新: 给出Selphie的某一等级和危险度下所有魔法的组合
第四次更新: 给出Selphie的各种等级和危险度下The End的出现几率
第三次更新: 加入魔法的部分规律性解释和The End的出现几率的分析
第二次更新: 给出周期为64次的结论证实
第一次更新: 加入魔法选取过程中用到的随机数的分析
忙了几天,也就这点成绩.贴出来吧,大家看一下.
影响Slot的因素:
1.Selphie的等级
2.Selphie的危险度
3.你的RP ^_^
与Slot无关的因素:
1.Selphie的Luck
2.Selphie的HP
3.队员的Luck和危险度(但是队员的状态会影响Selphie的危险度,比如KO)
其中:
1.危险度分5个等级,00-04,00不会发动Limit,01-04危险等级依次升高,越高Limit越好,这个对所有队员都适用
2.危险度在Selphie进行Slot时不会改变(即使队员被KO了),每次换人时危险度重新计算
3.Selphie的危险度越高越容易出现好东东
4.Selphie的Lv越高越容易出现好东东 <---真是模糊呀
魔法的顺序没有公式,对,没有.每个魔法都是按照下面的步骤算出来的,因此我只能解释这个过程.
详细步骤的图解:
首先是最后一步输出魔法的魔法表,里面记录了她的Slot里可能输出的所有魔法:
说明:
1.颜色用来区分魔法的数量,蓝色表示1,红色表示2,绿色表示3
2.这个数表示当前魔法的最大可能释放数值,实际释放次数是1到这个数之间的一个数,计算方法random3%max+1
魔法表输出的魔法由行数和列数决定.其中列数是随机的,选中任一列的概率相等,计算方法random2%8.至于行数则由图中的行表决定:
说明:
表中标了红色的是能查到魔法表的第F行的3个位置,要想用The End,就必须使行表输出0F
行表输出的数值也由它所在的行数和列数决定.其中行数是按一定概率选取的,选中各行的概率是:
列数则由公式计算:
column = sLevel / 10 + dDegree + random % 5 - 1
其中:
1.sLevel是Selphie的Lv, sLevel/10的范围是0-10
2.dDegree是她的当前的危险度,范围是1-4
3.random是一个随机数,random%5表示除以5的余数,范围是0-4
4.column的范围是0-17
嗯,所有的步骤都在这里了,大家帮忙分析一下吧,我会陆续把魔法的概率放上来.
更新:
关于魔法选取过程中用到的随机数
随机数的属性:
这里的随机数不同于我在关于chocobo world的那篇帖子里提到的线性同余式,而是采用了循环查表的方法,即程序事先在内存中放一张环形表,用一个指针指向某一个数,使用时把指针指向的数选出来,然后指针滑向下一个位置,准备下一次输出,至于指针的位置由每次进入战斗时随机确定(这里用到的倒是线性同余式了).整个表有256个数,如下(16进制):
举例来说,某一次输出了最后一行倒数的FF,那么接下来几次将会是5C, C7, 6A, CA, 63(指针滑向表的最开头,表是环状的), 06等等.
随机数的使用范围:
1.很广,不光是Selphie的Slot,敌我双方的几乎每次行动都会用到(没有全部测试,至少物理和魔法攻击是有的,甚至连小Tonberry移动一步也会用到一次-_-bbb).
2.不同的行动方式使用的次数不同.Selphie的Slot选一个魔法要用4次,小Tonberry移动一次要用1次.这个没有仔细测试,因此不排除有不同的行动方式有着相同的使用次数的可能.
3.大家共用这一张表和指针,轮到谁谁动几下,这样在一定程度上减小了随机数重复出现的可能性,但是也打乱了Slot的表面规律.
魔法选取的整个过程共4次用到了随机数:
1.查行表的列数时的公式里用了一次,目的是按相同的概率选一个0-4之间的数
2.查行表的行数时用了一次,目的是按不同的概率选择一行
3.查魔法表的列数时用了一次,目的是按相同的概率选择一列
4.输出魔法时用了一次,目的是按相同的概率选一个1-当前输出魔法最大释放次数之间的数
因此可以说当选取过程中第一次用到随机数时,这一次的魔法和释放次数已经唯一确定了.
举例:
当前Selphie等级为8,危险度为3,某次选取第一次随机数输出(16进制)69,那么按上面的概率表可知接下来的3次依次是2F, 64, 12.
计算过程:
1.公式column = sLevel / 10 + dDegree + random % 5 - 1 = 8/10 + 3 + 0x69%5 - 1 = 2,表示行表的第2列
2.第二个随机数2F查概率表为1,表示行表的第1行
3.查行表第1行第2列得到00,表示魔法表的第00行
4.第三个随机数0x64%8 = 4,表示魔法表的第4列
5.查魔法表第00行第4列:魔法为Fire,最大可能释放次数为3
6.第四个随机数0x12%3 + 1 = 1.
结果就是Fire 1 Times.
观察上面的随机数表不难发现,既然总数只有256个,那么这种方式输出的数字就必然每256次一个循环,第1次和第257次输出的必然是同一个数.再看魔法的选取过程,每次使用4个随机数,如果中间没有其它行动的话,下一个魔法将使用接下来的4个随机数.那么可以得出结论:在没有干扰的情况下,Slot的魔法将在256/4=64次后开始重复,包括魔法种类和释放次数.
但是干扰几乎是必然的,敌我双方的几乎任何行动都会使用随机数,也就是会打乱上面说的64次的周期,抛开己方队员不说(让他们老老实实呆着就是了),敌人隔一会来一下就够了,况且不同的攻击方式使用随机数的次数还不一样,鬼才知道它们什么时候会出什么招.
二次更新
1.危险度的计算也会用到随机数一次,因此换人的过程和队友的状态变化(比如被KO)也计算入上面所说的干扰行动之内.
2.在UFO处的测试证明了64次一个周期的正确性,只要不换人,魔法的出现种类和次数每64次一循环,具体的魔法我就不帖了,大家自己测试一下吧,想要UFO的存档的请留下邮箱我发给你.
三次更新:
Slot的魔法部分规律性解释
首先看Slot的两种情况:
无干扰的情况很罕见,UFO处我方队员无行动无换人无状态变化时就是一个例子.在这种情况下Slot的魔法及其数量完全不受干扰,表现出很强的规律,每64次一个循环.因此在这里每选取64次不出现The End的话,就可以考虑按换人键了(仅仅退出Slot再进入是没有作用的).
剩下的几乎都是有干扰了.干扰大致分以下几种类型:
由于干扰因素的出现时机和随机数的使用次数都不易确定,造成64次循环的周期被完全破坏(注意魔法的选取一次需要4个随机数,如果干扰也是一次需要4个或者4的倍数的话,那么规律还是存在的,但实际上干扰使用的随机数是不定的),虽然采取相应的对策可以减少干扰因素的发生(见上表),但除了个别战斗外无法完全避免(PS的开盖法是否有效待测).
注意有干扰时的平稳区,在干扰因素很少的情况下(比如只有一个敌人攻击),如果手快的话,两次干扰之间是可以选取很多次魔法的,从而使平稳区的长度加长,出现次数增多.由于在这段选取过程中没有干扰,因此还是有一定规律的.随机数只有区区256个,如果采样足够(足够多的选取试验次数),会发现这段区域里的魔法及其数量(往往魔法的种类受到重视,其实数量同样有规律)都有固定的序列,具体表现就是有几种序列在选取过程中经常出现.但规律仅存在于这一段中,它的长度与平稳区的长短息息相关.当干扰再次来临(一般的情况是敌人又一次进攻),短暂的规律立刻被打破.可以看到,减少干扰的作用是加长平稳区的长度,使得魔法及其数量的可预见性更大一些.
The End的出现几率的分析
根据魔法的选取步骤,只有在魔法表选第F行,第7列时才会出现The End,列数的机会是均等的,只考虑行.这要求行表的输出必须是0F,也就是行表中我标记了红色的位置,一共有3处.行表也受到它自己的行和列的约束,行是由等级和危险度和随机数垒起来的,列是按不等的几率选的.
观察3处标记,其对应的列数分别为3,11,15;输出11的最低等级是40级,输出15的最低等级是80级,而3的最高等级是39级.因此1-39级时The End的输出都是第3列,40-79级时都是第11列,80-100级时是第11或15列.再考虑行,第3,11列对应的行的几率是7/256,第15列则是40/256.综合分析的结果如下表:
在输出行表的列数的公式中,等级是固定的,随机数和危险度的起调节作用,范围是+0 至 +7.一般情况是危险度越高越好,但也不是绝对的.举个例子:在等级为38级时,要想选出The End必须输出第3列,这要求危险度最高为1,再高一点点就永远不可能选到The End(除非升级).
四次更新:
Selphie的各种等级和危险度下The End的出现几率:
由此可见:
1.对The End来说,危险度并不是越高越好,但是这并不影响其它魔法
2.表中的概率数据有可能偏小,但是为0的部分绝不会再大于0
3.注意Lv40-79时是无论如何也不可能选到The End的,无论危险度是多少,因此尽量避开这部分等级
五次更新:
之前的解释过于注重魔法的选取过程,现在换个角度思考:
魔法的输出,由随机数表中的连续4个随机数决定一次选取的魔法种类和释放次数,我们称这一次的种类和数量为一个魔法组合.既然随机数只有256个,那么当等级和危险度一定时,当前的Slot中可能的组合也就只有256种,这些组合的具体情况可以通过穷举随机数计算出来.我只举一个例子,其余的可以依次类推:
当前等级: 60-69级, 当前危险度: 2, 魔法组合情况:
也就是说当Selphie的等级为60-69级时,危险度为2时,可能的组合不会超出这256种(不计算重复则还要再少些).每一次的魔法选取就相当于从这256种之中选一种出来,显示在屏幕上,这样解释应该比较清楚了.
由于随机数一次用4个,那么无干扰(别忘了干扰会占用随机数)时应该是每隔4个组合选一个,比如第一次选了第5组,那么下一次选第9组,再下一次选第14组,为了方便起见,我把上面的表格按4个一行排列,这样无干扰时每次选的必然按同一列依次往下选,也就是共有4个序列.
有干扰就不是这样,要视干扰占用的随机数而定.比如你正在选取,突然敌人释放了一个魔法,占用了3个,那么这次就得跳过3个而不是4个,从一列跳到了另一列.原来的规律被打破,按照这一列的规律继续选取,直到再一次被干扰打断.两次干扰之间是不会换列的,在这之间的魔法序列会保持规律.这样就解释了一段魔法序列经常出现的问题.一个比较好的情况是干扰恰巧占用了4的倍数的随机数,那么就不会换列,而是按列往下跳过几个组合继续选,这样仍然能保持规律.
注意当下一次的组合超过256时会跳到开头,因为随机数表是环状的.比如当前是第254组,而下一组要跳过5组,那么就是第254+5-256=3组.
上面的表格我是编程实现的,很简单.你可以自己写,也可以留下邮箱,我把程序发给你.
-
Kweh!!Kweehhhh!!
第四次更新: 给出Selphie的各种等级和危险度下The End的出现几率
第三次更新: 加入魔法的部分规律性解释和The End的出现几率的分析
第二次更新: 给出周期为64次的结论证实
第一次更新: 加入魔法选取过程中用到的随机数的分析
忙了几天,也就这点成绩.贴出来吧,大家看一下.
影响Slot的因素:
1.Selphie的等级
2.Selphie的危险度
3.你的RP ^_^
与Slot无关的因素:
1.Selphie的Luck
2.Selphie的HP
3.队员的Luck和危险度(但是队员的状态会影响Selphie的危险度,比如KO)
其中:
1.危险度分5个等级,00-04,00不会发动Limit,01-04危险等级依次升高,越高Limit越好,这个对所有队员都适用
2.危险度在Selphie进行Slot时不会改变(即使队员被KO了),每次换人时危险度重新计算
3.Selphie的危险度越高越容易出现好东东
4.Selphie的Lv越高越容易出现好东东 <---真是模糊呀
魔法的顺序没有公式,对,没有.每个魔法都是按照下面的步骤算出来的,因此我只能解释这个过程.
详细步骤的图解:
首先是最后一步输出魔法的魔法表,里面记录了她的Slot里可能输出的所有魔法:
Magic | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
0 | Fire | Blizzard | Thunder | Cure | Fire | Blizzard | Thunder | Full-cure |
1 | Fira | Blizzara | Thundara | Cura | Cura | Blizzara | Thundara | Full-cure |
2 | Firaga | Blizzaga | Thundaga | Curaga | Firaga | Blizzaga | Thundaga | Wall |
3 | Water | Aero | Bio | Full-cure | Firaga | Blizzaga | Thundaga | Rapture |
4 | Water | Aero | bio | Demi | Holy | Flare | Quake | Rapture |
5 | Bio | Demi | Holy | Flare | Meteor | Quake | Tornado | Rapture |
6 | Demi | Holy | Flare | Meteor | Quake | Tornado | Ultima | Rapture |
7 | Holy | Flare | Meteor | Quake | Tornado | Ultima | Rapture | Tornado |
8 | Meteor | Holy | Ultima | Ultima | Ultima | Ultima | Ultima | Ultima |
9 | Blind | Sleep | Silence | Esuna | Blind | Sleep | Silence | Full-cure |
A | Protect | Aura | Haste | Drain | Blind | Sleep | Silence | Full-cure |
B | Break | Float | Regen | Protect | Aura | Haste | Drain | Wall |
C | Dispel | Shell | Double | Slow | Break | Confuse | Curaga | Wall |
D | Death | Pain | Stop | Dispel | Shell | Double | Slow | Rapture |
E | Berserk | Death | Pain | Zombie | Meltdown | Curaga | Reflect | Triple |
F | Holy | Meteor | Ultima | Ultima | Meteor | Ultima | Ultima | The End |
说明:
1.颜色用来区分魔法的数量,蓝色表示1,红色表示2,绿色表示3
2.这个数表示当前魔法的最大可能释放数值,实际释放次数是1到这个数之间的一个数,计算方法random3%max+1
魔法表输出的魔法由行数和列数决定.其中列数是随机的,选中任一列的概率相等,计算方法random2%8.至于行数则由图中的行表决定:
Row | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
0 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 01 | 01 | 00 | 00 | 00 | 00 | 00 | 01 |
1 | 00 | 00 | 00 | 00 | 00 | 01 | 01 | 02 | 02 | 02 | 03 | 04 | 09 | 09 | 09 | 0A | 0A | 0B |
2 | 09 | 09 | 09 | 0A | 0A | 0B | 0B | 0C | 0C | 0D | 0D | 0E | 00 | 00 | 01 | 01 | 01 | 02 |
3 | 00 | 00 | 01 | 01 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 00 | 01 | 02 | 0F | 03 | 04 |
4 | 00 | 01 | 02 | 0F | 03 | 04 | 05 | 06 | 07 | 08 | 08 | 0F | 01 | 02 | 04 | 02 | 07 | 02 |
说明:
表中标了红色的是能查到魔法表的第F行的3个位置,要想用The End,就必须使行表输出0F
行表输出的数值也由它所在的行数和列数决定.其中行数是按一定概率选取的,选中各行的概率是:
Row | Random Number | Possibility |
0 | 00 - 26 | 39 / 256 |
1 | 27 - 9E | 120 / 256 |
2 | 9F - D0 | 50 / 256 |
3 | D1 - F8 | 40 / 256 |
4 | F9 - FF | 7 / 256 |
列数则由公式计算:
column = sLevel / 10 + dDegree + random % 5 - 1
其中:
1.sLevel是Selphie的Lv, sLevel/10的范围是0-10
2.dDegree是她的当前的危险度,范围是1-4
3.random是一个随机数,random%5表示除以5的余数,范围是0-4
4.column的范围是0-17
嗯,所有的步骤都在这里了,大家帮忙分析一下吧,我会陆续把魔法的概率放上来.
更新:
关于魔法选取过程中用到的随机数
随机数的属性:
这里的随机数不同于我在关于chocobo world的那篇帖子里提到的线性同余式,而是采用了循环查表的方法,即程序事先在内存中放一张环形表,用一个指针指向某一个数,使用时把指针指向的数选出来,然后指针滑向下一个位置,准备下一次输出,至于指针的位置由每次进入战斗时随机确定(这里用到的倒是线性同余式了).整个表有256个数,如下(16进制):
63 | 06 | F0 | 23 | F8 | E5 | A8 | 01 | C1 | AE | 7F | 48 | 7B | B1 | DC | 09 |
22 | 6D | 7D | EE | 9D | 58 | D5 | 55 | 24 | 39 | 7A | DF | 8E | 54 | 6C | 1B |
C0 | 0B | D0 | 43 | D8 | 9A | 47 | 5D | 21 | 02 | 17 | 4B | DB | 11 | AF | 70 |
CD | 4D | 34 | 49 | 72 | 91 | 2D | 62 | 97 | 59 | 45 | F7 | 6E | 46 | AA | 0A |
A3 | C8 | 31 | 92 | 38 | FA | D4 | E6 | CB | F3 | DE | 6B | BB | F1 | 1C | 3C |
D6 | AD | B2 | A9 | DD | 57 | 42 | 95 | 0C | 79 | 25 | 1F | BC | E7 | AC | 5B |
83 | 28 | 76 | F2 | 18 | DA | 87 | A1 | 61 | 6F | BE | 5A | 5E | 51 | EF | B0 |
C9 | 15 | 74 | 89 | BD | D1 | A2 | 75 | D7 | 99 | 85 | 4C | 4F | D2 | BF | 4A |
20 | 08 | 56 | A0 | 50 | 3A | 67 | 26 | 41 | 33 | B7 | BA | FB | 30 | CF | 7C |
84 | 2C | 32 | E9 | 1D | 16 | 82 | 78 | A4 | 80 | 65 | 5F | 0E | 27 | B9 | 19 |
C3 | A7 | B6 | 00 | 3B | FC | 88 | E1 | C6 | 93 | FE | 8B | D9 | B8 | 13 | 69 |
2F | 64 | 12 | 37 | FD | 77 | E2 | B5 | 04 | E0 | 1A | 8C | 8F | B4 | CC | F9 |
60 | EB | 29 | E3 | 90 | A5 | 68 | 3D | 81 | 73 | 3F | AB | 7E | B3 | 0F | CE |
C4 | 35 | 94 | 96 | 86 | 71 | D3 | 2A | E4 | 9F | 9C | EC | 4E | 14 | F5 | EA |
40 | A6 | F6 | 03 | 98 | C5 | 07 | F4 | 2B | C2 | 3E | E8 | 9B | 36 | 53 | 2E |
8D | 0D | 52 | 10 | 66 | 1E | ED | 8A | 44 | 9E | 05 | FF | 5C | C7 | 6A | CA |
举例来说,某一次输出了最后一行倒数的FF,那么接下来几次将会是5C, C7, 6A, CA, 63(指针滑向表的最开头,表是环状的), 06等等.
随机数的使用范围:
1.很广,不光是Selphie的Slot,敌我双方的几乎每次行动都会用到(没有全部测试,至少物理和魔法攻击是有的,甚至连小Tonberry移动一步也会用到一次-_-bbb).
2.不同的行动方式使用的次数不同.Selphie的Slot选一个魔法要用4次,小Tonberry移动一次要用1次.这个没有仔细测试,因此不排除有不同的行动方式有着相同的使用次数的可能.
3.大家共用这一张表和指针,轮到谁谁动几下,这样在一定程度上减小了随机数重复出现的可能性,但是也打乱了Slot的表面规律.
魔法选取的整个过程共4次用到了随机数:
1.查行表的列数时的公式里用了一次,目的是按相同的概率选一个0-4之间的数
2.查行表的行数时用了一次,目的是按不同的概率选择一行
3.查魔法表的列数时用了一次,目的是按相同的概率选择一列
4.输出魔法时用了一次,目的是按相同的概率选一个1-当前输出魔法最大释放次数之间的数
因此可以说当选取过程中第一次用到随机数时,这一次的魔法和释放次数已经唯一确定了.
举例:
当前Selphie等级为8,危险度为3,某次选取第一次随机数输出(16进制)69,那么按上面的概率表可知接下来的3次依次是2F, 64, 12.
计算过程:
1.公式column = sLevel / 10 + dDegree + random % 5 - 1 = 8/10 + 3 + 0x69%5 - 1 = 2,表示行表的第2列
2.第二个随机数2F查概率表为1,表示行表的第1行
3.查行表第1行第2列得到00,表示魔法表的第00行
4.第三个随机数0x64%8 = 4,表示魔法表的第4列
5.查魔法表第00行第4列:魔法为Fire,最大可能释放次数为3
6.第四个随机数0x12%3 + 1 = 1.
结果就是Fire 1 Times.
观察上面的随机数表不难发现,既然总数只有256个,那么这种方式输出的数字就必然每256次一个循环,第1次和第257次输出的必然是同一个数.再看魔法的选取过程,每次使用4个随机数,如果中间没有其它行动的话,下一个魔法将使用接下来的4个随机数.那么可以得出结论:在没有干扰的情况下,Slot的魔法将在256/4=64次后开始重复,包括魔法种类和释放次数.
但是干扰几乎是必然的,敌我双方的几乎任何行动都会使用随机数,也就是会打乱上面说的64次的周期,抛开己方队员不说(让他们老老实实呆着就是了),敌人隔一会来一下就够了,况且不同的攻击方式使用随机数的次数还不一样,鬼才知道它们什么时候会出什么招.
二次更新
1.危险度的计算也会用到随机数一次,因此换人的过程和队友的状态变化(比如被KO)也计算入上面所说的干扰行动之内.
2.在UFO处的测试证明了64次一个周期的正确性,只要不换人,魔法的出现种类和次数每64次一循环,具体的魔法我就不帖了,大家自己测试一下吧,想要UFO的存档的请留下邮箱我发给你.
三次更新:
Slot的魔法部分规律性解释
首先看Slot的两种情况:
无干扰:
●●●●●●●……●●●●●…… <--随机数环,256个
●: 表示4个随机数输出一个魔法和一个数量
有干扰:
●●★★●●●★●★★●●●●……●●●●★★●★★★●…… <--随机数环,256个
\__________________/
稳定区
●: 意思同上
★: 表示干扰,干扰使用的随机数不定,出现时机也不定
平稳区: 表示两次干扰之间的一段较长区域
无干扰的情况很罕见,UFO处我方队员无行动无换人无状态变化时就是一个例子.在这种情况下Slot的魔法及其数量完全不受干扰,表现出很强的规律,每64次一个循环.因此在这里每选取64次不出现The End的话,就可以考虑按换人键了(仅仅退出Slot再进入是没有作用的).
剩下的几乎都是有干扰了.干扰大致分以下几种类型:
干扰类型 减少干扰的对策
敌方行动 Stop(有效性待测,再说也是暂时的)
我方行动 让大家都好好呆着
我方换人 进入Slot后不再受此影响
引发危险度变化的事件 进入Slot后不再受此影响
使用随机数的其他情况 待测
由于干扰因素的出现时机和随机数的使用次数都不易确定,造成64次循环的周期被完全破坏(注意魔法的选取一次需要4个随机数,如果干扰也是一次需要4个或者4的倍数的话,那么规律还是存在的,但实际上干扰使用的随机数是不定的),虽然采取相应的对策可以减少干扰因素的发生(见上表),但除了个别战斗外无法完全避免(PS的开盖法是否有效待测).
注意有干扰时的平稳区,在干扰因素很少的情况下(比如只有一个敌人攻击),如果手快的话,两次干扰之间是可以选取很多次魔法的,从而使平稳区的长度加长,出现次数增多.由于在这段选取过程中没有干扰,因此还是有一定规律的.随机数只有区区256个,如果采样足够(足够多的选取试验次数),会发现这段区域里的魔法及其数量(往往魔法的种类受到重视,其实数量同样有规律)都有固定的序列,具体表现就是有几种序列在选取过程中经常出现.但规律仅存在于这一段中,它的长度与平稳区的长短息息相关.当干扰再次来临(一般的情况是敌人又一次进攻),短暂的规律立刻被打破.可以看到,减少干扰的作用是加长平稳区的长度,使得魔法及其数量的可预见性更大一些.
The End的出现几率的分析
根据魔法的选取步骤,只有在魔法表选第F行,第7列时才会出现The End,列数的机会是均等的,只考虑行.这要求行表的输出必须是0F,也就是行表中我标记了红色的位置,一共有3处.行表也受到它自己的行和列的约束,行是由等级和危险度和随机数垒起来的,列是按不等的几率选的.
观察3处标记,其对应的列数分别为3,11,15;输出11的最低等级是40级,输出15的最低等级是80级,而3的最高等级是39级.因此1-39级时The End的输出都是第3列,40-79级时都是第11列,80-100级时是第11或15列.再考虑行,第3,11列对应的行的几率是7/256,第15列则是40/256.综合分析的结果如下表:
等级 输出列 输出行 行几率 总体比较
1-39 3 4 7/256 几率低
40-79 11 4 7/256 几率低
80-100 11或15 4或3 7/256或40/256 几率高
在输出行表的列数的公式中,等级是固定的,随机数和危险度的起调节作用,范围是+0 至 +7.一般情况是危险度越高越好,但也不是绝对的.举个例子:在等级为38级时,要想选出The End必须输出第3列,这要求危险度最高为1,再高一点点就永远不可能选到The End(除非升级).
四次更新:
Selphie的各种等级和危险度下The End的出现几率:
Level\危险度 | 01 | 02 | 03 | 04 |
01-09 | 0/256 | 0/256 | 0/256 | 1/256 |
10-19 | 0/256 | 0/256 | 1/256 | 0/256 |
20-29 | 0/256 | 1/256 | 0/256 | 0/256 |
30-39 | 1/256 | 0/256 | 0/256 | 0/256 |
40-49 | 0/256 | 0/256 | 0/256 | 0/256 |
50-59 | 0/256 | 0/256 | 0/256 | 0/256 |
60-69 | 0/256 | 0/256 | 0/256 | 0/256 |
70-79 | 0/256 | 0/256 | 0/256 | 0/256 |
80-89 | 0/256 | 0/256 | 0/256 | 4/256 |
90-99 | 0/256 | 0/256 | 4/256 | 0/256 |
100 | 0/256 | 4/256 | 0/256 | 1/256 |
由此可见:
1.对The End来说,危险度并不是越高越好,但是这并不影响其它魔法
2.表中的概率数据有可能偏小,但是为0的部分绝不会再大于0
3.注意Lv40-79时是无论如何也不可能选到The End的,无论危险度是多少,因此尽量避开这部分等级
五次更新:
之前的解释过于注重魔法的选取过程,现在换个角度思考:
魔法的输出,由随机数表中的连续4个随机数决定一次选取的魔法种类和释放次数,我们称这一次的种类和数量为一个魔法组合.既然随机数只有256个,那么当等级和危险度一定时,当前的Slot中可能的组合也就只有256种,这些组合的具体情况可以通过穷举随机数计算出来.我只举一个例子,其余的可以依次类推:
当前等级: 60-69级, 当前危险度: 2, 魔法组合情况:
Fira x 2, Flare x 1, Fire x 2, Flare x 1,
Holy x 2, Death x 2, Blizzara x 1, Curaga x 2,
Rapture x 1, Water x 1, Curaga x 1, Blizzaga x 1,
Shell x 1, Holy x 2, Thunder x 2, Blizzara x 3,
Flare x 1, Quake x 1, Flare x 1, Water x 1,
Blizzaga x 2, Ultima x 1, Firaga x 1, Blizzard x 1,
Thundaga x 2, Wall x 1, Ultima x 1, Firaga x 1,
Firaga x 1, Demi x 1, Fira x 2, Dispel x 2,
Fire x 2, Slow x 1, Water x 2, Flare x 2,
Wall x 1, Flare x 2, Blizzaga x 1, Thundara x 2,
Full-cure x 1, Cure x 2, Full-cure x 1, Aero x 2,
Full-cure x 1, Death x 2, Blizzaga x 3, Double x 2,
Firaga x 2, Blizzaga x 1, Thundaga x 2, Aero x 1,
Flare x 1, Thundaga x 2, Wall x 1, Aero x 1,
Blizzaga x 2, Rapture x 1, Ultima x 1, Thundaga x 3,
Thundaga x 1, Double x 2, Cure x 1, Dispel x 2,
Pain x 3, Thundaga x 1, Water x 2, Thundaga x 1,
Tornado x 1, Quake x 1, Meteor x 1, Slow x 1,
Rapture x 1, Quake x 2, Curaga x 1, Pain x 2,
Quake x 1, Fire x 2, Thundaga x 3, Flare x 1,
Pain x 2, Pain x 3, Double x 1, Ultima x 1,
Thundaga x 2, Blizzaga x 1, Firaga x 2, Blizzara x 2,
Blizzaga x 2, Full-cure x 1, Fire x 1, Wall x 1,
Tornado x 1, Slow x 3, Curaga x 1, Firaga x 1,
Thundaga x 3, Thundaga x 1, Holy x 3, Thunder x 2,
Ultima x 2, Aero x 2, Shell x 1, Wall x 1,
Thundaga x 1, Double x 2, Thundaga x 1, Blizzaga x 2,
Rapture x 1, Bio x 1, Death x 1, Confuse x 3,
Fire x 3, Blizzaga x 2, Blizzaga x 3, Pain x 1,
Ultima x 1, Curaga x 3, Wall x 1, Holy x 2,
Blizzaga x 2, Firaga x 2, Rapture x 1, Thundaga x 2,
Ultima x 1, Double x 3, Firaga x 1, Fira x 1,
Thunder x 2, Water x 3, Dispel x 2, Thundaga x 2,
Wall x 1, Thundaga x 3, Blizzara x 2, Full-cure x 1,
Wall x 1, Double x 3, Dispel x 1, Holy x 1,
Wall x 1, Shell x 1, Firaga x 3, Holy x 1,
Thundaga x 2, Aero x 3, Flare x 1, Thundara x 2,
Thundara x 1, Firaga x 1, Firaga x 3, Dispel x 3,
Flare x 2, Rapture x 1, Thundaga x 1, Full-cure x 1,
Aero x 2, Death x 1, Cure x 2, Wall x 1,
Curaga x 1, Death x 3, Cure x 1, Firaga x 2,
Holy x 1, Blizzaga x 1, Tornado x 1, Slow x 3,
Thundaga x 2, Ultima x 2, Aero x 2, Meteor x 2,
Dispel x 1, Blizzara x 2, Rapture x 1, Firaga x 1,
Thundaga x 2, Full-cure x 1, Blizzaga x 3, Rapture x 1,
Bio x 2, Ultima x 1, Break x 3, Fire x 1,
Ultima x 1, Cura x 3, Wall x 1, Firaga x 1,
Shell x 1, Shell x 1, Holy x 2, Demi x 3,
Demi x 3, Curaga x 1, Bio x 1, Blizzaga x 3,
Berserk x 2, Blizzaga x 1, Aero x 2, Curaga x 1,
Rapture x 1, Curaga x 1, Slow x 3, Curaga x 1,
Wall x 1, Thundara x 2, Break x 3, Confuse x 2,
Firaga x 1, Thundaga x 3, Thundaga x 3, Blizzaga x 2,
Demi x 1, Meteor x 1, Firaga x 1, Rapture x 1,
Shell x 3, Holy x 1, Tornado x 1, Firaga x 3,
Blizzara x 1, Bio x 2, Water x 2, Quake x 1,
Reflect x 1, Flare x 1, Fire x 2, Blizzaga x 2,
Rapture x 1, Fire x 2, Meteor x 1, Bio x 3,
Slow x 2, Water x 3, Meteor x 1, Thundaga x 3,
Curaga x 1, Quake x 1, Blizzaga x 2, Blizzaga x 2,
Thunder x 1, Water x 1, Thunder x 1, Thundaga x 1,
Blizzard x 1, Bio x 3, Firaga x 3, Thundaga x 3,
Blizzaga x 1, Full-cure x 1, Quake x 1, Wall x 1,
Stop x 2, Bio x 1, Slow x 1, Thundaga x 1,
也就是说当Selphie的等级为60-69级时,危险度为2时,可能的组合不会超出这256种(不计算重复则还要再少些).每一次的魔法选取就相当于从这256种之中选一种出来,显示在屏幕上,这样解释应该比较清楚了.
由于随机数一次用4个,那么无干扰(别忘了干扰会占用随机数)时应该是每隔4个组合选一个,比如第一次选了第5组,那么下一次选第9组,再下一次选第14组,为了方便起见,我把上面的表格按4个一行排列,这样无干扰时每次选的必然按同一列依次往下选,也就是共有4个序列.
有干扰就不是这样,要视干扰占用的随机数而定.比如你正在选取,突然敌人释放了一个魔法,占用了3个,那么这次就得跳过3个而不是4个,从一列跳到了另一列.原来的规律被打破,按照这一列的规律继续选取,直到再一次被干扰打断.两次干扰之间是不会换列的,在这之间的魔法序列会保持规律.这样就解释了一段魔法序列经常出现的问题.一个比较好的情况是干扰恰巧占用了4的倍数的随机数,那么就不会换列,而是按列往下跳过几个组合继续选,这样仍然能保持规律.
注意当下一次的组合超过256时会跳到开头,因为随机数表是环状的.比如当前是第254组,而下一组要跳过5组,那么就是第254+5-256=3组.
上面的表格我是编程实现的,很简单.你可以自己写,也可以留下邮箱,我把程序发给你.
-
Kweh!!Kweehhhh!!