查找布局所有组合的算法

问题描述 投票:0回答:1

在此输入图像描述 一个矩形中有 3 个不同的部分。 组件的大小并不重要,就像图中的 1 号和 2 号一样,它们是相同的。 然而,下面这三个是不同的。 现在我需要找到布局的所有组合。我只是不知道。 请有人帮助我。

我想过使用数组,但我仍然不知道如何让它工作。

java algorithm
1个回答
0
投票

布局由两个变量决定:

  • 布局结构(无着色)
  • 三种颜色分布到布局中

结构

结构必须始终由容器中的第一行分隔。这可以是:

  • 一条垂直线,将容器分成两列
  • 一条水平线,将容器分成两行(如您的示例所示)

然后使用第二条线进行分割,可以是:

  • 与第一条线平行
  • 与第一条线正交,将前半部分分开
  • 与第一条线正交,分成第二半

所以有 2x3=6 种可能的结构(不着色):

enter image description here

着色

我们可以选择一个区域来涂成红色:3种可能性。我们可以选择剩余区域来着色绿色:有 2 种可能性。其余区域将变为黄色。因此,有 3x2 种可能性对结构进行着色,并且可以对上述 6 种结构中的每一种进行着色,从而得到 6x6=36 种可能性:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.