关于矩阵中寻找所有矩形的问题
由于本人的知识有限,或许对这个问题的描述并不怎么到位,标题取的并不好,还望路过的朋友们能指点。
问题是这样的:
像这么一个4*4的矩阵,求出里面有多少个矩形。
起初,当然是想去用一些和我们比较常用的用到矩阵的算法去解决。当然没有想到解决方法。
想不到,就去google了,或许是因为对这个问题表述的比较差,没有找到解决方法。后来去群里问,有群友说这个问题可以用“杨辉三角”可以解决,不记得“杨辉三角”了,在百度百科看了半天,也不懂怎么去用“杨辉三角”解决,没有能领悟那位群友的意思。
后来又有个群友给了个链接给我(http://www.adminvc.com/bbsid-95530-9.html),看了下,那篇帖子里的讲的是“等边矩阵中寻找所有等边矩形(正方形)”,里面的一个算法是这样的(一段PHP代码): <?php
$total=0;
for($length=1;$length<=8;$length++)
{
$grille=$length*$length;
$total+=$grille;
if($length<8)
echo $length . "*" . $length . "+ ";
else
echo $length . "*" . $length . "= " . $total;
}
?>
这并不能解决我的问题,但至少是给了我一个提示。
我的思路是这样的:
表述能力比较差,我就简短点说吧,就是对行进行遍历同时对列进行遍历。我不知道这算不算是矩阵乘法,或者应该说是数组乘法。
贴个C#代码:
int row = int.Parse(txtWidth.Text.Trim());
int column = int.Parse(txtHeight.Text.Trim());
int total = 0;
for (int i = 0; i < row; i++)
{
for (int j = i; j < row; j++)
{
for (int m = 0; m < column; m++)
{
for (int n = m; n < column; n++)
{
total++;
}
}
}
}
浙公网安备 33010602011771号