Logic 按需求量公平分配有限数量的物品

Logic 按需求量公平分配有限数量的物品,logic,Logic,所以我有一组用户,他们希望得到1个项目,但他们可以做3个愿望,按他们想要多少排序。 但在所有用户中,一个项目可以分发的次数是有限的。最后每个人都应该(可能)得到他最想要的东西 我已经尝试过将每个希望X项目的用户添加到“祝福者”列表中,如果该列表小于可用的数量,那么每个人都会得到它。问题是,如果可用物品的数量较大,这并不考虑人们对该物品的喜爱程度 我相信可能已经有一道数学题试图解决这个问题了 假设你有100个苹果、香蕉和胡萝卜 假设你有300人,他们对他们的三个选择进行了排名 一个简单的算法是先尝

所以我有一组用户,他们希望得到1个项目,但他们可以做3个愿望,按他们想要多少排序。 但在所有用户中,一个项目可以分发的次数是有限的。最后每个人都应该(可能)得到他最想要的东西

我已经尝试过将每个希望X项目的用户添加到“祝福者”列表中,如果该列表小于可用的数量,那么每个人都会得到它。问题是,如果可用物品的数量较大,这并不考虑人们对该物品的喜爱程度


我相信可能已经有一道数学题试图解决这个问题了

假设你有100个苹果、香蕉和胡萝卜

假设你有300人,他们对他们的三个选择进行了排名

一个简单的算法是先尝试并实现每个人的第一选择。假设300人的第一选择是:150个苹果,120个香蕉,30个胡萝卜。如果可用物品的数量少于所需物品的数量,每个人都可以得到一件。否则随机分布

因此,在上面的例子中,你能够满足230人的第一选择

然后对剩下的人进行第二次(第三次)选择并重复