关于冒险出货率的算法

2020/12/27719 浏览综合
写了一堆东西然后删掉了
觉得自己不适合写讨论类的东西,直接放出推测的算法好了
规则如下:
1.出货概率动态变化,基础概率为0
2.出货概率变化范围[0%,100%]
3.每次不出货,增加1.1%出货概率
4.每次出货,降低11.1%出货概率
5.这里只认为金武算出货,防具之类的不算
上述规则模拟10万次出货的代码:
```lua
math.randomseed(os.time())
local ss = 0
local s = 0
local successd = 0
local max_successd = 0
local max_num = 0
-- 以上是统计数据
local minbase = 0 -- 概率最低值,低至此概率时不会再降低
local maxbase = 1 -- 概率最高值,不会比这个更高
local base = minbase -- 当前概率,默认取最低值
local step = 0.011 -- 没出货加多少
local success_step = -0.111 -- 出货减多少
local n = 100000 -- 运行多少次(只算出货)
for i = 1, n do
local num = 1 --为了出货刷了多少轮
while true do
if math.random() < base then --这把出货了
s = s + num --统计
max_num = math.max(max_num, num) --统计
ss = ss + base --统计
successd = successd + 1 --统计
base = math.min(math.max(base + success_step, minbase), maxbase) --降低概率
break
else
base = math.min(math.max(base + step, minbase), maxbase) --提高概率
num = num + 1 --统计
successd = 0 --统计
end
end
max_successd = math.max(successd, max_successd) --统计连续出货
end
print(string.format(
'平均%.2f次出货(综合概率%.2f%%)\n出货时概率平均为%.2f%%\n最多连续出货%d次\n最黑连续%d次不出货',
s / n, 100 / (s / n), ss / n * 100, max_successd, max_num))
```
模拟结果:
平均9.97次出货(10.03%)
出货时概率平均为14.24%
最多连续出货3次
最黑连续42次不出货
这就是为什么我SL了100多次都没出货的原因
10
2
13