📌  相关文章
📜  拼图|将一个正方形划分为N个较小的正方形

📅  最后修改于: 2021-04-22 08:51:42             🧑  作者: Mango

难题:找到一个可以将一个正方形分解为N个较小正方形的所有N值,并概述一种进行这种分解的算法。

解决方案:要观察的基本点是一个具有4个直角的正方形。因此,要将其划分为较小的正方形,其每个直角必须落入另一个正方形,因为一个以上的直角在一起将导致产生非正方形的图形。

现在,考虑以下情况:

  1. 当N = 2、3或5时:不能进行这种划分,因为它违反了上述给定条件,并获得了无形状的图形。

  2. 当N = 4时:这是最简单的情况。只需将正方形从中心水平和垂直分开即可。结果数字将有4个正方形。

  3. 当N为偶数且大于4时:这种情况可以通过考虑N = 2k并形成2k – 1来推广,即沿着给定正方形的相邻边形成相等的正方形。但是,每个较小正方形的边长应等于给定正方形长度的1 / k。

    例如:如图所示,当N = 6时,此处沿顶部和右侧形成了5个正方形,分别是原始正方形边的第(1/3)边。此外,还剩下一个正方形(2 / k) ,导致总共6个正方形。

  4. 情况N为奇数且大于5:此情况基于N的偶数值的解。如果N为奇数,则可以将其分解为N = 2k +1 ,进一步可以写为N = 2(k – 1)+ 3 。现在,我们可以使用上述方法首先形成2(k – 1)个正方形,然后将所获得的正方形中的一个划分为四个较小的正方形,这将使总的正方形计数增加3。

    例如:考虑N = 9时的示例,如图所示。在这里,我们首先形成6个正方形,然后将左上角的正方形划分为4个较小的正方形,以获得总计9个正方形。