Показать сообщение отдельно
  #4 (permalink)  
Старый 24.06.2013, 18:47
Аватар для Demath
Профессор
Отправить личное сообщение для Demath Посмотреть профиль Найти все сообщения от Demath
 
Регистрация: 22.06.2012
Сообщений: 168

Сначала составляете функцию перемножения двух матриц, затем рекурсивно умножаете матрицу на саму себя.


function multMatrix(A,B)
{   
    var rowsA = A.length,
        rowsB = B.length,
        colsB = B[0].length,
        C = [];

    for (var i=0; i<rowsA; i++)
     { C[i] = new Array(colsB); }

    for (var k=0; k<colsB; k++)
     { for (var i=0; i<rowsA; i++)
        { var temp = 0;
          for (var j=0; j<rowsB; j++)
           { temp += A[i][j]*B[j][k]; }
          C[i][k] = temp;
        }
     }

    return C;
}

function MatrixPow(n,A)
{  
   if (n==1) return A;
   else return multMatrix(A,MatrixPow(n-1,A));
}
Ответить с цитированием