寻找一种通用方法,以选择n个项目中的百分比1。假设您有50%的机会成为狮子,有20%的机会成为老虎,有30%的机会成为熊。这些必须选择其中之一,并且呼叫方法的%机会的数量是无限的,而返回的值将是您将是的。
类似:
局部动物= pickanimal([?开放到传递的数据结构](
类似的东西可能有效:
local function pickAnimal(t)
local p, acc = math.random(), 0
for name, prob in pairs(t) do
acc = acc + prob
if p < acc then return name end
end
return nil
end
math.randomseed(os.time())
print(pickAnimal({lion = 0.5, tiger = 0.2, bear = 0.3}))