您的位置:首页 > 其它

矩阵相乘的算法

2011-03-12 22:12 225 查看
 

row 是横向的, 排的意思
column 是纵向的, 列的意思

输入的a数组和b数组,c数组用于输出结果。ra 是 row a    ca是column  a

]public class MatrixMultiply {

public static void main(String args[]) {
int a[][] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, { 9, 10, 11, 12 } };
int b[][] = { { 1, 5, 9 }, { 2, 6, 10 }, { 3, 7, 11 }, { 4, 8, 12 } };

int c[][] = new int[3][3];

matrixMultiply(a, b, c, 3, 4, 4, 3);

for (int i = 0; i <= 2; i++)
for (int j = 0; j <= 2; j++)
System.out.println(c[i][j]);

}

public static void matrixMultiply(int[][] a, int[][] b, int[][] c, int ra,
int ca, int rb, int cb) {

if (ca != rb) // 不能乘,a行不等于b列
throw new IllegalArgumentException("矩阵不可乘");

for (int i = 0; i < ra; i++)
for (int j = 0; j < cb; j++) {
int sum = a[i][0] * b[0][j];

for (int k = 1; k < ca; k++)
sum += a[i][k] * b[k][j];

c[i][j] = sum;

}

}

}
[/code]
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 string class c