首页 > 解决方案 > 需要提示从哪里开始组合

问题描述

我是这个论坛的新手,希望能找到下一个假设问题的提示或答案:有 9 个盒子。三排三排。我选择一个作为开始。从那开始,我必须将它与另外三个盒子结合起来。包含的起始框总共有 4 个。组合必须是所有框都至少有一侧相互连接。所以我猜最大组合/排列搜索不起作用?然后我得到不允许的组合。只需要提示从哪里/如何开始。

标签: c#c

解决方案


将盒子及其空间关系定义为

0 1 2
3 4 5
6 7 8

只有 9 个盒子,您将拥有9! / (5! * 4!) == 126可能的组合。

您可以枚举它们并过滤掉无效的。

  • 给定一个组合(4 个整数,每个整数一个框号)
  • 如果不包含您随机选择的盒子则无效
  • 如果任何成员不是任何其他成员的 +/- 1 或 +/3 则无效

推荐阅读