2015-07-20 2 views
0

У меня есть две матрицыУмножение конкретные элементы в матрице

A = {{1,2,3}, 
    {4,5,6}, 
    {7,8,9}}; 

B = {{1,2,3,10}, 
    {4,5,6,11}, 
    {7,8,9,12}, 
    {1,2,3,13}}; 

Я хочу, чтобы умножить их следующим образом. элементов {5,6}, {8,9} из матрицы A, умноженной на {1,2}, {4,5} (элементы из B). Я знаю, что могу размножать отдельные индексы, но как я могу их пропустить?

Я не уверен, как подойти к этой проблеме. Если кто-то может дать мне подсказку, это будет большой помощью.

Я не ищу ответа. Простой логики о том, как я могу это сделать, используя петли, было бы достаточно.

+3

Вы пробовали что-нибудь? –

+0

Я пробовал код pesudo, но я не могу получить его вокруг моей головы на данный момент – Maddy

+0

Вы намерены делать умножение матрицы? –

ответ

0

Похоже, вы не приходят в чат. Извините, но я должен бежать. Вот возможное решение вашей проблемы:

int A[][] = new int[][]{{1,2,3}, 
          {4,5,6}, 
          {7,8,9}}; 
    int B[][] = new int[][]{{1,2,3,10}, 
          {4,5,6,11}, 
          {7,8,9,12}, 
          {1,2,3,13}}; 

    System.out.println("===================="); 
    int number = 1; 
    for(int rowIndex = A.length - 2; rowIndex < A.length; rowIndex++) { 
     for(int colIndex = A[0].length - 2; colIndex < A[0].length; colIndex++) { 
      number *= A[rowIndex][colIndex]; 
      System.out.print(A[rowIndex][colIndex] + "\t"); 
     } 
     System.out.print("\n"); 
    } 
    System.out.println("====================");  
    for(int rowIndex = 0; rowIndex < 2; rowIndex++) { 
     for(int colIndex = 0; colIndex < 2; colIndex++) { 
      number *= B[rowIndex][colIndex]; 
      System.out.print(B[rowIndex][colIndex] + "\t"); 
     } 
     System.out.print("\n"); 
    } 
    System.out.println("===================="); 
    System.out.print("ANSWER IS: " + number); 

Выход:

==================== 
5 6 
8 9 
==================== 
1 2 
4 5 
==================== 
ANSWER IS: 86400 
+0

В моем предыдущем ответе была ошибка ... A [0] .length - длина столбца, а не длина строки (которая является A.length) теперь исправлена ​​... извините за это – Constantin

+0

Как вы получили 86400 ? – Maddy

+1

Я умножаю все числа так, как вы хотели. 5x6x8x9 x 1x2x4x5 – Constantin