Re: [闲聊] 代理的随机并非完全不变

楼主: x94fujo6   2020-07-14 17:58:57
※ 引述《AirFuckKing (空干王)》之铭言:
: ※ 引述《x94fujo6 ()》之铭言:
: : 机率的判定是靠乱数表
: 是靠随机函式带入seed值后回传的值判定
所以产生的整串乱数每次都一样
不能当成一个表/轴看?
: : 乱数表是每场战斗进场才随机产生的
: 初始的seed值是每场战斗进场才随机产生
: : 然后该场战斗中的机率判定就是照这个固定的表来跑
: 依照随机函式带入初始的seed值 以及后续seed递回的值 所回传值进行判定
: : 同一场战斗/代理中
: : 乱数表是不变的
: 初始seed是不变的
: : 所以代理在[某种程度上]可以重现机率判定
: : 但并不是完全不变
: : 队伍里面有技能/天赋是机率或是队伍练度高了打怪变快
: : 都可能导致乱数表偏移
: 都可能导致带入随机函数的seed值不一样所回传的值不一样
就偏移 你这样说让不懂的人看不懂比较厉害?
: : 例如原本你录到的代理乱数表是
: : 编号 01 02 03 04 05 06 07 08 09 10 11 12
: : 乱数 11 73 50 62 38 99 14 34 26 81 56 30
: : (这张表的数字不重要,重要的是判定结果)
: : 例如这场战斗你用12F档攻击
: : 不管你用他档多久,重点是你每用他档一次伤害就会进行一次机率判定
: seed就会进行一次递回运算 这会导致原本要带入随机函式的seed值递回项次不一样
: : 这会消耗掉一个乱数表上的乱数
: : 但是队伍练度提升了,怪死的比较早
: : 结果12F少扛一次攻击,那之后所有机率判定用的乱数就会全部提前一个
: 使递回的seed值提前一个
: : 当判定时用的数字不一样就会影响结果
没有原始码 无法证明后面到底怎么实作的
再说不需要递回新的乱数种子
乱数的实现方法本来就已经包含
只要最一开始设定就可以
也符合代理的要求的重现机率判定结果
目前能观测到的结果
其他干员因为各种原因而导致多用一个/少用一个
让后续的结果偏移掉
也可以靠用其它干员消耗乱数把你要的结果连接起来
随便写个python
这是模拟 黑 二技 机率50%
import random
random.seed(100)
for loop in range(0, 10):
random_number = round(random.random()*100)
if random_number > 50:
critical = 0
else:
critical = 1
print("序号:{:02d}, 乱数:{:02d}, 判定结果:{}"
.format(loop, random_number, critical))
执行结果 (序号加给人看的)
序号:00, 乱数:15, 判定结果:1
序号:01, 乱数:45, 判定结果:1
序号:02, 乱数:77, 判定结果:0
序号:03, 乱数:71, 判定结果:0
序号:04, 乱数:73, 判定结果:0
序号:05, 乱数:43, 判定结果:1
序号:06, 乱数:80, 判定结果:0
序号:07, 乱数:53, 判定结果:0
序号:08, 乱数:08, 判定结果:1
序号:09, 乱数:46, 判定结果:1
种子固定 产生的乱数也固定
整场下来 整个乱数序列 = 乱数表
当表看人类方便理解也方便操作
上面模拟代理纪录结果是前两次成功爆击 但接下来三次没有
实战中让黑继续可以连续爆击的方法
用其它干员把中间没爆击的乱数序列消耗掉
效果等于黑可以跳过没爆击的那几个乱数
变成
import random
random.seed(100)
for loop in range(0, 10):
random_number = round(random.random() * 100)
if not any(x == loop for x in [2, 3, 4, 6, 7]):
if random_number > 50:
critical = 0
else:
critical = 1
print("序号:{:02d}, 乱数:{:02d}, 判定结果:{}"
.format(loop, random_number, critical))
序号:00, 乱数:15, 判定结果:1
序号:01, 乱数:45, 判定结果:1
序号:05, 乱数:43, 判定结果:1
序号:08, 乱数:08, 判定结果:1
序号:09, 乱数:46, 判定结果:1
现在只观测黑的情况下就是连续爆击5次
也符合实战测试结果
作者: tliu257 (伴时)   2020-07-14 18:04:00
楼下披萨猫推看不懂= =
作者: plzza0cats (西黑百夫长)   2020-07-14 18:21:00
看不懂== 有文组看得懂的方式吗?
作者: harryron9 (两个世界)   2020-07-14 18:26:00
乱数表这个名词就是让文组看得懂的方式了(?
作者: keika03 (keika03)   2020-07-14 18:27:00
喔喔原来是这样子,嗯我现在完全搞懂了<--代理指挥貌
作者: kuria610478 (kuria)   2020-07-14 19:06:00
太棒了,我逐渐理解一切.jpg
作者: li1015 (123)   2020-07-14 19:38:00
作者: fd90312 (天天喝开水)   2020-07-14 19:56:00
娘子快跟我出来看真正的刀客塔怎么玩游戏的

Links booklink

Contact Us: admin [ a t ] ucptt.com