百分之一挑选的机会



寻找一种通用方法,以选择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}))

最新更新