基本上我正在寻找一个解决方案,如果给定的组合与给定的集合匹配,则该解决方案会返回。
示例:我有一个数组,其中存储了哪个机房以及哪个工作场所拥有哪些设备。我需要确定给定数量的具有特定需求的用户是否可以进入计算机房。在我的示例中,索引是工作场所编号。
$aComputerRoomEquipment = array();
$aComputerRoomEquipment[1] = array("PC");
$aComputerRoomEquipment[2] = array("PC");
$aComputerRoomEquipment[3] = array("PC", "Scanner");
$aComputerRoomEquipment[4] = array("PC", "Printer");
$aComputerRoomEquipment[5] = array("PC", "Scanner", "Printer");
$aComputerRoomEquipment[6] = array("PC");
$aComputerRoomEquipment[7] = array("PC", "Scanner", "Printer");
$aComputerRoomEquipment[8] = array("PC");
我需要回答以下问题:如果我有两个用户需要扫描仪,而我有三个用户需要打印机,他们是否适合我的机房?
所有属性的简单总和是行不通的,因为如果我将三个需要打印机的人放在房间里,那么需要扫描仪的可怜人就没有工作场所了。
我已经考虑过迭代所有可能的组合,但是工作场所的数量越多,完成所需的时间就越长,甚至可能需要永远完成。