如何计算矩形网格中的矩形数?

时间:2011-06-06 05:56:53

标签: math formula

我想计算矩形中的矩形数。可以使用公式

来完成

(X ^ 2 + X)(Y ^ 2 + Y)/ 4

但它还包括完美的正方形,如1 * 1,2 * 2,3 * 3等。我不想在我的计算中包含它。我怎么能这样做?

1 个答案:

答案 0 :(得分:5)

好的,你有点(0, 0)(x, 0)(x, y)(0, y)x和{{1}之间整数坐标的矩形数也是整数。你现在需要从这个总和中删除完美的正方形。

要计算它,让我们评估一下方格y:它们显然有1*1个。对于正方形x*y,我们对x坐标有2*2个选项,对于这个正方形的左下角的y坐标有x-1,因为它的宽度square:这会产生y-1个方块。同上,我们将(x-1)*(y-1)方格(x-2)*(y-2)

因此,对于给定的3*3,我们有i个方格(x - i + 1) * (y - i + 1)i*ii1的最小值x(当然,如果y为4且x为7,则我们不能有一个边长大于4的正方形。)

因此,如果y,我们有:

m = min(x, y)

我通过索引更改(Sum_Squares = Sum(i = 1, i = m, (x - i + 1) * (y - i + 1)) = Sum(j = 0, j = m - 1, (x - i) * (y - i)) = Sum(j = 0, j = m - 1, x*y - (x+y)*j + j^2) = m*x*y - (x+y)*Sum(j = 0, j = m - 1, j) + Sum(j = 0, j = m - 1, j^2) = m*x*y - (x+y)*Sum(j = 1, j = m - 1, j) + Sum(j = 1, j = m - 1, j^2) = m*x*y - (x+y)*m*(m-1)/2 + (m-1)*m*(2*m-1)/6 )并通过众所周知的公式得到它:

j = i - 1

您只需要从Sum(i = 1, i = n, j) = n*(n + 1)/2 Sum(i = 1, i = n, j^2) = n*(n + 1)*(2*n + 1)/6 删除此Sum_Squares即可!