【发布时间】:2021-01-11 18:46:17
【问题描述】:
假设我有 3 个盒子和 3 只动物,我想根据它们各自的分布创建一个包含 1 个动物的盒子数组:
animals = ["Cat", "Dog", "Bunny"]
boxes = []
概率由下式给出
"Cat" "Dog" "Bunny"
Box 1 0.3 0.4 0.3
Box 2 0.2 0.3 0.5
Box 3 0.5 0.3 0.2
我将如何填充框数组,使得第一个元素等于概率 0.3 的“猫”,概率 0.4 的“狗”和概率 0.3 的“兔子”,第二个元素等于“猫”概率为 0.2,“狗”的概率为 0.3 等等。
另外,假设第一个元素/框是“猫”。查看第二个和第三个盒子,我们不能有>0 的概率再次更改第一个盒子,因为它已经装满了一只猫。我们也不能让第二个盒子再次包含一只猫的概率 > 0,因为它已经在盒子 1 中。
是否可以通过将剩余的行/列缩放为 1 来负责任地解决这个问题,但它们的比例仍然相同?例如,如果框 1 是一只猫,那么我们会得到
"Cat" "Dog" "Bunny"
Box 1 1 0 0
Box 2 0 0.4 0.6
Box 3 0 0.6 0.4
【问题讨论】:
-
如果一只猫在第一个盒子里,这是否意味着它不能在其他两个盒子里?另外,有没有可能装猫/狗/兔子的盒子?
-
@AliHassan 是的,每只动物只有 1 只,每个盒子只能同时放入 1 只。最后,所有盒子都必须装满 1 只动物。
标签: python arrays probability distribution