好了,如果我们想加上 10 张保底,又想让间隔大致符合指数分布怎么办?简单:
function erand(rate)
while true do
local p = math.floor(math.log(1-math.random()) * (-rate))
if p < rate then
return p
end
end
end
function erand(rate)
for i = 1, 100 do -- 100 可以随便写
local p = math.floor(math.log(1-math.random()) * (-rate))
if p < rate then
return p
end
end
return rate-1
end