我需要一个算法帮助人们分配房间。我需要在一个房间列表中随机分配一个房间给一个人,在第四个人被分配到房间后,它应该在列表之外(应该不可用)。我还没有运气PHP改组和排序功能。
非常感谢任何帮助(指针,参考资料等)。
答案 0 :(得分:3)
答案 1 :(得分:1)
这不是一个直接的PHP问题,你应该首先描述算法,然后尝试实现它。
根据我的理解,最好的解决方案是保留按实际空位排序的房间列表(所以在开始时你将有空房间,然后是1人房间,然后房间有2个,等等)。
然后,每当有新用户到来时,您必须选择一个策略将其分配到房间,例如,您可以选择始终将新人添加到最空的房间(因此您将在空房间之间选择一个随机的,或者只有1个人的房间之间,如果没有空的可用等等......或者你可以决定将它分配给一个未满的随机房间。这取决于你真正需要做的事情。
在任何情况下,您都可以保留2个房间列表,一个用于未满,一个用于整个房间。当一个房间因为一个新人填满它而变满,你只需将它交换到另一个列表。相反,当用户离开整个房间时,您将其切换回原始列表。
当然,当你的政策需要执行一个取决于任何房间里有多少空白空间的选择时,保持空单空间排序的非完整空间列表是有用的,否则你可以将它们全部放在一起随机选择一个。