问题:给定一组必修课和选修课,每门课程仅在特定时间段(有 7 个时间段)提供,生成所有可能的时间表。
例子:
对于必修课:
- MAT101 - 1、2、5
- HIS102 - 2、4、6
- ENG105 - 3、6、7
和选修课:
- LIT103 - 3、4、6
- CHE101 - 7、1、2
- 生物 101 - 5、4、7
- MAT201 - 6、5、1
- ANT201 - 1
(并非每门选修课都必须包含在时间表中)
可能的解决方案之一是:
- MAT101 [必修]
- HIS102 [强制性]
- LIT103
- 生物101
- MAT201
- ENG105 [必修]
- 车101
用 PHP 编写它的最有效方法是什么?
我目前正在尝试开发一个蛮力解决方案,但这是一项非常乏味的任务,我正在寻找更有效的方法来做到这一点。我发现这是一个 NP 完全问题,并搜索了有助于解决此类问题的 PHP 类,但恐怕目前没有这样的类可用。