从具有概率的列表中选择X个元素

时间:2019-02-07 15:08:56

标签: random dart flutter

我必须列出10种不同类型的商品。

例如:

  • 项目A.概率90%
  • 项目B。概率为90%
  • 项目C.概率90%
  • 项目D.概率30%
  • 物品E.概率20%
  • F项概率为10%
  • 项目G.概率为1%

我如何获得此列表?

在以下问题下,我尝试了一种方法,该方法由第一和第三向下显示(基于upvote)答案:How to pick an item by its probability? 但据我所知,所有这些都需要为每个可能的元素(例如if(Random.nextDouble(1) <= item.probability){List.add(item)})编写代码行,并且在数学上正确无误,但这种方法会为每个项目都要求新的逻辑,并且不容易适应新的逻辑项,并且不太适合出现概率相同的项。

我不太了解第二个问题(已接受的问题),但是据我所知,它还使用了逐项的方式(我可能错了,对不起,它非常简洁,它是java) 。

所以我一直在寻找这样的东西: A weighted version of random.choice 我链接的答案是在python中,并且是numpy.choice方法的单行实现,然后可以将其放入从0到X的cicle中以运行X次。有没有办法在Dart中做类似的事情?

0 个答案:

没有答案