好了,如果我们想加上 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
最近和公司一个开发团队探讨了一下他们正在开发的游戏中遇到的性能问题,看看应该如何优化。这个游戏的战斗场景想模仿亿万僵尸(They are billions)的场景。在亿万僵尸中,场景中描绘了上万的僵尸潮,但我们这个游戏,超过 500 个僵尸就遇到了性能问题。固然,手机的硬件性能比不上 PC ,但 500 这个数量级还是略低于预期。