1

我会直截了当。我正在开发负责日程安排的网络或电话应用程序。我希望学生输入他们所学的课程,并为他们提供适合他们要求的可能的课程组合。

但是,假设有 150 门课程符合他们的要求,他们正在寻找 3 门课程。那将是 150C3 组合,对吧?

在浏览器或移动设备上运行这样的东西是否可行?

4

4 回答 4

2

首先,您需要一个更智能的算法来修剪搜索树。此外,如果您一遍又一遍地为同一组课程执行此操作,那么在服务器上进行计算会更好,并且也许预先计算一个可行的数据结构可以减少查询的执行时间。例如,您可以创建一棵树,其中节点下的每个子树都包含“兼容”的节点。

于 2013-05-17T02:22:57.127 回答
1

在我看来,您对此的看法完全错误。大多数机构有 1) 毕业的课程要求,以及 2) 许多要求和选修课的先决条件。这不是一个纯粹的组合问题,它是一个依赖树。例如,如果学生的专业都需要Course 201、Course 301和Course 401,数字越大,数字越小作为prereq,并且学生是Junior,你应该强烈建议尽快修读Course 201。

于 2013-05-17T15:04:34.003 回答
0

方案一(Time\Space costly):让手机用户逐页浏览(150*149*148)个可能的选择列表,处理在服务器端完成。

选项 2(简单):代替 (150*149*148)-item 决策树,提供一个 150-item 的袋子,如果他从袋子中选择一项,则将其从袋子中移除。

选项 3(复杂):使用依赖树(父课程需要子课程)和学生已经学习的课程列表以及他的轨道\级别来扩展您的决策树(可能的选择)。

据我所知,大多数教育系统都使用第三种选择,这需要为学生提供个人资料。

于 2013-05-19T07:20:21.780 回答
0

是的,我想我可以处理数学!

如果有 150 门课程,并且您必须选择 3 门,那么可能性的数量是(150*149*148)/(3*2)(每个 jerry 的校正),这肯定比 150 阶乘要好,因为阶乘要多得多;)

现在,您真的不想构建这么大的数组,而且您也不必这样做!所有 Web 语言都有随机选择数组中的元素的想法,因此您在数组中获取一个元素并从中请求 3 个随机唯一条目。

虽然潜在的课程组合非常大,但根据您的帖子,我认为没有理由尝试计算它们。从 n 个大小的列表中随机选择 k 个项目的任务即使对于旧的、慢速的设备也是非常简单的!

您是否有任何特殊原因需要计算所有潜在的课程组合,而不是仅仅抓住一个随机选择作为建议?如果没有,问题就解决了!

于 2013-05-17T02:34:23.433 回答