谜题82 |不同的配对
Joey 必须将 2N 个三明治用不同颜色的包装纸包裹成 N 对,这样他才能喂饱他的 N 个女朋友(假设情况是我们必须忽略“JOEY DOESN'T SHARE FOOD”这一事实)。他必须为他们服务 2N-1 天。女孩不喜欢他们的三明治重复的一对彩色包装纸。
为 joey 设计一个算法,以便在 2N-1 天内没有相同的配对。
提示:可以使用 2*N 表解决问题。
解决方案:
这是有效生成 2N-1 组不同对的方法之一。为方便起见,将不同颜色编号为 1 到 2N,并将这些数字放在 2N 表中。第一组的对由该表的列给出。要生成接下来的 2N -2 组,请旋转(例如顺时针)最后生成的表中除 1 之外的所有条目。
图中显示了 N = 3 的示例。条目 1 是固定的,所有其他条目都顺时针旋转。
参考资料:该算法可以被认为是基于表示改变策略的。 Maurice Kraitchik 在 Mathematical Recreations [Kra53, pp. 226–227] 中给出了上述算法的两种解释。