protected void Page_Load(object sender, EventArgs e)
{
// CountSum();
Count_matrix_mul();
}
//floor向下取整
//ceiling 向上取整
//开平方就用Math.Sqrt, 开n次方:Math.Pow(double, 1/n)
//一维数组存储二维矩阵N*N,得到行和列
// 行:i / n ;列:i % n
private void Count_matrix_mul()
{
int[] numA = { 1, 2, 4, 3, 1, 4, 5, 3, 2 };
int[] numB = { 3, 4, 1, 2, 1, 3, 4, 4, 2 };
int A_len = numA.Length;
int B_len = numB.Length;
int[] numC = new int[A_len];
int C_len = numC.Length;
int n = (int)Math.Sqrt(A_len);//代表N*N矩阵
for (int i = 0; i < A_len; i++)//遍历A中每个数
{
int k = 0;
for (int j = (i / n) * n; j < (i / n) * n + n; j++) // 遍历行
{
numC[i] += numA[j] * numB[(i % n) + k];
k = k + n;
}
}
Label1.Text = "C矩阵:</br>";
for (int m = 0; m < C_len; m++)
{
Label1.Text += numC[m] + " ";
if ((m+1) % n ==0)
{
Label1.Text += "<br/>";
}
}
}