平铺三角网格

时间:2015-02-17 00:03:26

标签: algorithm

设计并解释递归的分而治之算法。有人有想法吗?

如图1(b)所示,给定k≥2的等腰三角网格,这个问题要求你用图1(a)中给出的图块完全覆盖它。不得覆盖网格的左下角。没有两个瓷砖可以重叠,并且所有瓷砖必须完全保留在给定的三角形网格内。您必须使用图1(a)中所示的所有四种类型的图块,并且不能使用图块类型来覆盖总网格区域的40%以上。在将它们放在网格上之前,您可以根据需要旋转切片。 enter image description here

1 个答案:

答案 0 :(得分:3)

这确实是感应的概念,类似于着名的例子"L-Tile" covering

正如你所说,你已经解决了k = 2的问题,它首先解决小例子是一个好的和正确的起点,但我认为这个问题对于k = 2的情况有点棘手,主要是由于每种类型不能超过40%约束。

然后对于k> 2,在你的例子中说k = 3,我们尝试利用你已经解决的东西,即k = 2

通过非常简单的观察,人们可能会注意到,对于k = n,它实际上可以由4 k = n-1个案例组成(见下图) enter image description here

现在中间的阴影部分形成一个可以填充1个B型的孔,所以我们可以先填充4个小的n-1个案例并用B型填充这个洞......

但是这个结构面临一个问题: B型将超过该区域的40%!

考虑k = 2,无论你如何填充该区域,必须使用2型B,我没有强有力的证明,但是通过一些暴力线索&错误你应该被说服。然后对于k = 3,我们有4个小三角形意味着我们有2 * 4 = 8 B型,加上1个以上填充孔将给我们9个B型,每个使用1.5平方单位,总共用掉13.5平方单位。

当k = 3时,总面积为(2 ​​^ 3)^ 2/2 = 32平方单位 13.5 / 32 = 0.42 ....这违反了约束!

那该怎么办?这就是为什么我们必须使用一个技巧来处理k = 2的情况(我假设你已经完成了这个部分,因为你说你知道怎么做k = 2的情况)

首先,我们知道使用我们的建设性方法从4个较小的三角形构建一个大三角形,只有B型会违反这个约束(即40%区域),你可以自己验证。所以我们想减少使用的B型总数,但是每个较小的三角形必须使用至少2个B型,所以我们可以减少的唯一地方是大三角形中间的空洞,我们可以使用其他类型代替B型?同时,我们希望小三角形的其他部分保持不变,以便我们可以使用相同的参数来进行归纳(即一般来说,使用相同的形式从4 2 ^(n-1)个三角形形成2 ^ n个三角形施工方法)

如果我们特别设计k = 2案例,答案是肯定的 请参阅下面的构造:(也可能有其他建筑工程,但我只需要知道一个)

enter image description here

诀窍是我故意在空(灰色)三角形旁边移动1个B型 我们暂时停在这里,做一些验证:

要构建一个k = 2的案例,我们使用

  • 2类型A = 2平方英寸< 40%
  • 2类型B = 3平方英寸< 40%
  • 1类型C = 1.5平方英寸< 40%
  • 1类型D = 1平方单元< 40%

总使用7.5平方米,好

现在假设我们使用完全相同的方法来构造那些4个三角形来构成一个大的,中间的一个仍然是一个B型的空洞,但是现在不是用1个B类填充,我们填写孔与它们旁边的3型B紧密相连(回顾k = 2的情况),使用A型和A型。 d (我使用与上面相同的颜色方案以便于理解),我们对所有3个构成中间孔的小三角形进行此操作。

enter image description here

这是最后一部分(我知道它很长......) 我们减少了从较小的三角形构造一个大三角形时使用的B型的数量,但同时我们增加了A型和A型的数量。 D用了!那么这种新的施工方法是否有效?

首先注意它不会改变小三角形的任何部分,除了灰色三角形旁边的类型B,即如果满足40%约束,则此方法是归纳的并且递归以填充2 ^ n侧三角形< / p>

然后让我们再次计算我们使用的每种类型的数量。

对于k = 3,总单位为32,我们使用:

  • 2 * 4 + 3 = 11类型A = 11平方英寸&lt; 40%
  • 2 * 4-3 = 5 B型= 7.5平方毫米&lt; 40%
  • 1 * 4 = 4类型C = 6平方英寸<1 40%
  • 1 * 4 + 3 = 7类型D = 7平方英寸&lt; 40%

总计我们覆盖31.5个单位,好,现在让我们证明k = n&gt;满足40%约束。 3

设FA(n-1)是使用我们的新方法填充2 ^ n-1个三角形的A类总面积,同样,FB(n-1),FC(n-1),FD(n) -1)具有相似的定义

假设F *(n-1)为真,即不超过总面积的40%,我们证明F *(n)为真。

我们得到了

FA(n) = FA(n-1)*4 + 3*1

FB(n) = FB(n-1)*4 - 3*1.5

FC(n) = FC(n-1)*4

FD(n) = FD(n-1)*4 + 3*1

我们只显示FD(n)的证据,其他三个应该用类似方法证明(M.I。)

使用替换方法FD(n) = 2*(4^(n-2)) - 1 for n>=3(你至少应该尝试自己提出这个等式)

我们想要展示FD(n)/(2^2(n)/2) < 0.4

即。 2FD(n)/4^n < 0.4

考虑LHS,

LHS =(4 *(4 ^(n-2)) - 1)/ 4 ^ n

&LT; 4 ^(n-1)/ 4 ^ n = 1/4 < 0.4 Q.E.D

这意味着使用这种方法,对于任何2 ^ k双边三角形,所有类型AD都不会超过总面积的40%,对于k> = 3,最后我们显示归纳,有一种方法满足所有约束构造这样的三角形。

<强> TL; DR

  1. 困难的部分是满足40%的面积限制
  2. 首先在k = 2的情况下使用特殊结构,尝试使用它来构建k = 3的情况(然后k = 4,k = 5 ......感应的想法!)
  3. 当使用k = n-1的情况构建k = n的情况时,记下每种类型消耗的总面积的公式,并表明它们不会超过总面积的40%
  4. 组合点2&amp; 3,它是一种感应方法,表明对于任何k> = 2,有一种方法(我们描述)填充2 ^ k边三角形而不破坏任何约束