Я пишу метод умножения матриц с использованием Java. Мой класс Table
, который является 2D-массивом. Это конструктор Table
:
public Table(int n, int m, int val)
{
assert(n > 0 && m > 0);
elements = new int[n][m];
for(int row = 0; row < elements.length; row++)
{
for(int col = 0; col < elements[row].length; col++)
{
elements[row][col] = val;
}
}
}
И вот метод, о котором я говорю:
public static Table product(Table a, Table b)
{
assert(a.numCols() == b.numRows()) : "different dimensions!" + null;
Table c = new Table(a.numRows(), b.numCols(),0);
int res = 0;
for(int row = 0; row < a.numRows(); row++)
{
for(int col = 0; col < b.numCols(); col++)
{
for(int k = 0; k < a.numCols(); k ++)
{
res = res + a.get(row, k) * b.get(k, col);
c.set(row, col, res);
}
}
}
System.out.println(c.toString());
return c;
}
Метод должен возвращать новый Table
, который является результатом умножения a и b. Я думаю, что довольно ясно, что он должен делать. Проблема в том, что он правильно вычисляет только c[0][0]
; Таким образом, c.get(0,0)
вычисляется правильно, а результаты после этого - нет. Вы видите, что я делаю не так? Я ценю вашу помощь.