我希望有人解释一个简单问题的不同方法,然后我将尝试在PHP中实现它以实现更广泛的应用。
我有五个人在选择哪个房间有五个房间大,中,中,小。
Person 1 orders the rooms Grand, Large
Person 2 orders the rooms Large, Medium
Person 3 orders the rooms Large, Small
Person 4 orders the room Medium
Person 5 orders the rooms Large, Medium
如果遗失的房间是他们不感兴趣的房间。
选择每个房间的人最公平的方式是什么?
答案 0 :(得分:1)
使用启发式算法计算每种情况的匹配值。例如。如果一个人没有房间,价值将是低或负。如果每个人都有他们订购的最大房间,那么价值将是最高的。
为每种情况计算此值,然后采用具有最高值的情况。
答案 1 :(得分:0)
公平性并不总是很明确。
然而,在这种情况下,似乎一个人可以得到他要求的房间,或者没有。因此,人们可以提出一个强有力的论据,即所有同样数量的人获得他们想要的房间的解决方案同样公平,而且更多人获得他们想要的房间的解决方案比那些少得到他们想要的房间更公平(我们是因此不给任何一个人的偏好)。
在您的示例中,似乎只有一个解决方案,每个人都可以获得他想要的房间。因此,这是“最公平”的解决方案。
找到这个的算法只是一个深度优先搜索(或者,如果你需要加速,则是分支和绑定),它会考虑所有可能的分配并找到最大的分配。