【发布时间】:2010-03-12 18:21:01
【问题描述】:
我正在尝试提出一种算法来执行以下操作:
在程序停止之前,我总共需要填充 12 个单元格。我有 3 行,每行有 4 列。
作为一个例子,让我用飞机来说明这一点。所以你有 3 排,每排有 4 列,你有靠窗/过道的座位。每排将有一个靠窗座位、靠过道座位、靠过道座位和靠窗座位(|WA AW| 就像飞机上的座位安排一样)。在每次迭代(不同的乘客组)中,会有一定数量的乘客(1 到 12 人之间),我需要让他们尽可能靠近(坐在一起)。我为下一组(每次迭代)执行此操作,直到程序停止(当我完成每个组时它会停止)。
例如,我有 3 位乘客(A、B 和 C),A 想坐在靠窗的位置,B 想坐在靠过道的位置,而 C 想坐在靠窗的位置。假设所有座位(全部 12 个)都可用,我可以将它们放置为 |A# BC|或 |CB #A|并将座位标记为脏(所以我不会再为下一位乘客选择相同的座位)。我为下一组(迭代)执行此操作。
我不确定这个论坛是否正确,但如果有人可以建议我应该如何完成,我将不胜感激。
谢谢。
【问题讨论】:
-
要是我不上班就好了。这听起来像是一个有趣的问题。乘客落座后可以移动吗?
-
@mmyers - 我正在做同样的编辑。 :)
-
@ChaosPandion:你的手指要快。
-
二维数组是否重要?左侧窗户上的两个座位(一个接一个)是否比两侧窗户上的座位更近?
-
当座位被占用时,我不会说座位“脏”。
标签: algorithm constraints scheduling