两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 |
技术:出怪机制 [2022/12/20 03:26] – [选取某次出怪的行] OTZzzz | 技术:出怪机制 [2023/12/15 20:46] (当前版本) – [合法行] 39.76.68.180 |
---|
| |
~~SNIPPET_C~~snippet:通用排版~~ | ~~SNIPPET_C~~snippet:通用排版~~ |
| |
| |
| ~~SNIPPET_O1715827727~~snippet:优秀条目~~ |
| {{tag>[优秀条目]}} |
| <WRAP center round tip note> |
| 经OP鉴定,本词条内容清晰,排版优美,是值得参考的优秀范例。 |
| </WRAP> |
| ~~SNIPPET_C~~snippet:优秀条目~~ |
| |
| |
~~SNIPPET_O1715827727~~snippet:引自外部~~ | ~~SNIPPET_O1715827727~~snippet:引自外部~~ |
本条目主要讲解生存无尽模式中僵尸的生成算法与随机原理。 | 本条目主要讲解生存无尽模式中僵尸的生成算法与随机原理。 |
| |
| =====出生点===== |
| |
| 出生点指僵尸生成时的x坐标。(([[https://crescb.com/timespace/ts/index.html|现代遗留问题清算——这个世界的时空。]])) |
| |
| ^ 僵尸 ^ 普通波出生点 ^ 旗帜波出生点 ^ |
| | 旗帜 | - | 800 | |
| | 冰车 | 800~809 || |
| | 投篮 | 825~834 || |
| | 白眼、红眼 | 845~854 || |
| | 撑杆 | 870~879 || |
| | 雪橇 | 880~1030 || |
| | 所有其他僵尸 | 780~819 | 820~859 | |
===== 出怪类型 ===== | ===== 出怪类型 ===== |
| |
[[[6a9ec0] +768] +561c] // 出怪种子 | [[[6a9ec0] +768] +561c] // 出怪种子 |
[[[[6a9ec0] +768] +160] +6c] * 65 // 完成选卡次数 * 101 | [[[[6a9ec0] +768] +160] +6c] * 65 // 完成选卡次数 * 101 |
[[6a9ec0] +7f8] // [[教程:名词大全#序号-2|游戏模式]] | [[6a9ec0] +7f8] // 游戏模式 |
</code> | </code> |
| |
===== 出怪概率 ===== | ===== 出怪概率 ===== |
| |
以下表格列出了不同轮数下,各僵尸出现在出怪类型中的概率,以及出怪类型中僵尸总数((普僵与鸭子计一种,不计旗帜(固定生成)、雪人(极小概率随机生存)))各取值的概率。(([[https://tieba.baidu.com/p/5714350581|无尽生存僵尸出现概率统计]])) | 以下表格列出了不同轮数下,各僵尸出现在出怪类型中的概率,以及出怪类型中僵尸总数((普僵与鸭子计一种,不计旗帜(固定生成)、雪人(极小概率随机生成)))各取值的概率。(([[https://tieba.baidu.com/p/5714350581|无尽生存僵尸出现概率统计]])) |
| |
''轮数=1'': | ''轮数=1'': |
* ''b*(a-b)*2/(a*(a-1))'' | * ''b*(a-b)*2/(a*(a-1))'' |
* ''(a-b)*(a-b-1)/(a*(a-1))'' | * ''(a-b)*(a-b-1)/(a*(a-1))'' |
六大场地的''a''值分别为18/17/20/20/16/16,''b''值在''轮数≥8''时取值为9。 | ''轮数≥5''时,六大场地的''a''值分别为18/17/20/20/16/16;''轮数≥8''时,''b''为9。 |
</callout> | </callout> |
| |
^ 序号 ^ 简称 ^ 级别 ^ 权重 ^ 备注 | | ^ 序号 ^ 简称 ^ 级别 ^ 权重 ^ 备注 | |
| 0 | 普僵 | 1 | 4000 | ''轮数=5''起每轮-180,''轮数=25''起固定为400 | | | 0 | 普僵 | 1 | 4000 | ''轮数=5''起每轮-180,''轮数=25''起固定为400 | |
| 1 | 旗帜 | 1 | 0 | 在旗帜波固定出现,不参与随机过程 | | | 1 | 旗帜 | 1 | 0 | 无需出怪类型准许亦可生成,每个旗帜波有且仅有一只 | |
| 2 | 路障 | 2 | 4000 | ''轮数=5''起每轮-150,''轮数=25''起固定为1000 | | | 2 | 路障 | 2 | 4000 | ''轮数=5''起每轮-150,''轮数=25''起固定为1000 | |
| 3 | 撑杆 | 2 | 2000 | | | | 3 | 撑杆 | 2 | 2000 | | |
| |
从不同角度可以得到不同的饱和f数: | 从不同角度可以得到不同的饱和f数: |
* 第47f起,阶数不再起限制作用 | * 第**47f**起,阶数不再起限制作用 |
* 第85f起,级别上限在统计意义上不再起限制作用 | * 第**85f**起,级别上限在统计意义上不再起限制作用 |
* 第109f起,红眼数量上限不再起限制作用 | * 第**109f**起,红眼数量上限不再起限制作用 |
* 第126f起,级别上限在严格意义上不再起限制作用 | * 第**126f**起,级别上限在严格意义上不再起限制作用 |
| |
| |
- 无草皮之地关卡外的裸地行 | - 无草皮之地关卡外的裸地行 |
- 非泳池浓雾关卡(包含无草皮之地)的第6行 | - 非泳池浓雾关卡(包含无草皮之地)的第6行 |
- 无草地之地关卡的第1行与第5行 | - 无草皮之地关卡的第1行与第5行 |
| |
特别地,对于一些僵尸,有额外的不合法判定方法: | 特别地,对于一些僵尸,有额外的不合法判定方法: |
| |
注:无草皮之地的裸地对舞王僵尸合法。 | 注:无草皮之地的裸地对舞王僵尸合法。 |
| |
| ==== 选取出怪行的流程 ==== |
| |
| 对于选择僵尸出怪的行,游戏将依次计算钉耙、行类型、保护传送门、隐形食脑者、最后一波、推车、权重,最后得出结果。 |
| |
| 对于选取好的僵尸,选取出怪行按以下操作: |
| * 若场上有钉耙,获取编号((即栈位))最小的钉耙并执行以下流程,否则跳过钉耙 |
| * 钉耙所在行对于该僵尸类型是否合法,若不合法,则跳过钉耙 |
| * 若钉耙和僵尸绑定过(即使曾经与之绑定的僵尸消失),则跳过钉耙 |
| * 将钉耙标记为已绑定,插入钉耙行,返回钉耙行行直接结束出怪计算 |
| |
| 先依次计算每行的权重,对于第i行,流程如下: |
| |
| {{:技术:pasted:20221220-032900.png}} |
| |
| 所有行计算完毕后,按抽取行原则选取行,然后插入行并返回结果行。 |
| |
| ==== 实验数据 ==== |
| |
| {{:技术:pasted:20221220-032909.png}} |
| |
| ==== 一些推论 ==== |
| |
| 推论1:僵尸没有可出行时出现在第六行 |
| |
| {{:技术:pasted:20221220-032938.png}} |
| |
| 推论2:在样本量足够大的情况下,平均概率仅与权重有关 |
| |
| {{:技术:pasted:20221220-032945.png}} |
| |
| 推论3:在样本量足够大的情况下,''LastPicked<fs x-small>i</fs>''和''SecondLastPicked<fs x-small>i</fs>''仅与行被选中的顺序有关 |
| |
| 推论2被验证后,推论3是显然的。 |