让我假设我有一个7x7.i的正方形可以用其他正方形填充正方形(即尺寸1x1,2x2 ...... 6x6的正方形)。我怎样才能用最小可能的小正方形填充正方形。请帮帮我。
答案 0 :(得分:1)
考虑尺寸为s x s
的正方形。缩小尺寸m x m
的较小正方形将产生正方形m x m
,正方形n x n
和两个尺寸为m x n
的矩形,其中m + n = s
当s
为偶数时,可以将正方形划分为m = n
,在这种情况下,矩形也将是正方形,从而得到4的答案。
但是,当s
为奇数时,必须选择m
和n
的值,以便可以使用尽可能少的正方形填充生成的矩形。似乎没有一种直接明显的方法可以找出最佳配置,所以我建议想出一个算法来计算可以用来填充大小为m x n
的矩形的最小数量的方块(这是一个稍微简单的问题,我相信它可以用递归算法解决)。所需的平方总数将等于2 x ([number of squares in m x n rectangle] + 1)
。您可以使用循环检查1
和s/2
之间的所有m大小。
希望能让你开始。
答案 1 :(得分:0)
考虑尺寸为s x s的正方形。
将s
推理为素数。然后解决每个素数sp
的问题。 sp x sp
的答案与s x s
的答案相同。最小的素数可能会给出最低的结果。我没有这方面的证据,但是我已经手动检查了17 x 17。
这是偶数s
的Otaias概念的推广,得到了4的答案。
Placiing算法:
你需要从n =(s + 1)/ 2循环,向下舍入到n = s-1。
将n x n正方形放在角落里。
设m = s - n。 将m x m个正方形放置在相邻的角落中并保持放置直到它们(几乎)到达n x n正方形的末端。
剩余空间为m x m(如果幸运的话),或者最多2 m-1 x 2m-1,缺少角落。
使用类似的算法填充剩余空间。首先将n2 x n2方形放置在与缺角部分相对的角落中。
手工工作我获得了以下结果:
s minimum number of squares:
2 4
3 6
5 8
7 9
11 10
13 11
17 12
答案 2 :(得分:0)
首先检查n是否均匀。如果n是偶数,那么答案就是四,因为没有办法将3个正方形或2个正方形放在一起制作另一个正方形,以便在所有可能情况下解决一半
我只是打算抛出一个开箱即用的想法,因为我觉得这可能有所帮助,并且希望能够推进这个问题。我觉得它可能与Goldbach's weak conjecture有一些关联。该算法可能太长而无法计算更大的值,我不确定发生了多少优化。
现在我的想法是尝试枚举所有三元组(n1,n2,n3)
,其中n1 + n2 + n3 = n
和n1, n2, n3
都是素数(其中> = 2)和n >= 7
AND { {1}}
现在让我直截了当地描绘我的算法:
My algorithm http://i47.tinypic.com/ixyqmw.png
现在我的想法是找到所有可能的三元组n1 <= n2 <= n3
,因此它符合上述定义。接下来设置(n1,n2,n3)
。如果n_s = n1 + n2
遵循上述描述,则翻转n_s > n3
和n_s
现在问题是剩下的白色矩形(应该是相互一致的)。
让n3
表示矩形,其中:
n4 x n3
枚举所有可能的三元组n4 = n - 2 * n3 \\if following the depicted example
(将n视为n = n4,因此n3> = 7)和(n41, n42, n43)
(将n视为n = n3,因此n3> = 7)。接下来找到(n31, n32, n33)
的值,并且两者都是最大的值。
例如:
我们假设n_s3 == n_s4
和x3 = 17
x4 = 13
由于 Enumeration of x3 = 17:
2 + 2 + 13
3 + 3 + 11
5 + 5 + 7
Enumeration of x_s3:
4 = 2 + 2
6 = 3 + 3
10 = 5 + 5
12 = 5 + 7
14 = 3 + 11
15 = 2 + 13
Enumeration of x4 = 13:
2 + 2 + 7
3 + 5 + 5
Enumeration of x_s4:
4 = 2 + 2
8 = 3 + 5
9 = 2 + 7
10 = 5 + 5
是13和17之间共享的最大值,因此你在(两个矩形)中都适合10乘10平方,现在你有一个非平行四边形,它越来越难以填充,但是可能(我觉得)朝着正确的方向发展。
所有反馈都赞赏。