【问题标题】:How to make an array of events reflect the real-life probabilities of those events without repeating them?如何使事件数组反映这些事件的真实概率而不重复它们?
【发布时间】:2016-12-22 23:04:36
【问题描述】:

因此,如果我模拟从袋子中挑选彩色球的数组如下所示:

A = ["Blue", "Green", "Yellow"]

那我就可以用了

random.choice()

模拟从袋子中挑选一个的功能。但是,如果我的袋子里有不同数量的彩色球(比如 3 个绿色、5 个蓝色和 10 个黄色),我如何从数组中做出随机选择来反映选择每种颜色的不同概率?

【问题讨论】:

  • 欢迎来到 Stack Overflow!请显示您尝试过的代码以及您遇到的问题。
  • 这对研究来说是微不足道的。参见例如stackoverflow.com/q/3679694/3001761(或者实际上只是在列表中放入了 18 个条目......)
  • “说 3 个绿色、5 个蓝色和 10 个黄色”所以 ['green']*3 + ['blue']*5 + ['yellow']*10 是你包里的所有球,然后你想选择那些?嗯...
  • @jonrsharpe 感谢您的链接。你能解释一下代码是如何工作的,如果可能的话,它如何适应其他情况?
  • 不,这对于一个问题来说太宽泛了,更不用说 cmets 了!

标签: python arrays random


【解决方案1】:

很简单,你把球放进袋子里很多次

b = "Blue"
g = "Green"
y = "Yellow"
A = []

def append_balls(list, color, quantity):
    for i in range(quantity):
        list.append(color)

append_balls(A, b, 5)
append_balls(A, g, 3)
append_balls(A, y, 10)

print(A)
# A = ['Blue', 'Blue', 'Blue', 'Blue', 'Blue', 'Green', 
#      'Green', 'Green', 'Yellow', 'Yellow', 'Yellow', 'Yellow',
#      'Yellow', 'Yellow', 'Yellow', 'Yellow', 'Yellow', 'Yellow']

现在您可以使用random.choice(A) 从包中随机选择一个球。

【讨论】:

  • 你为什么要附加quantity?你不想append(color)吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-29
  • 2018-02-14
  • 2019-08-17
  • 2012-02-08
相关资源
最近更新 更多