Я занимаюсь разработкой калькулятора детерминантов на PHP
В классе Matrix я создал несколько функций, среди которых функция calc (order, matrix).Эта функция вызывает другую для понижения порядка массива до $ order = 3, а затем выполняет функцию sarrus ($ matriz).
Примечание: Эта матричная переменнаябудет меняться всякий раз, когда порядок понижен, то есть исходная матрица будет сохранена в другой переменной!
Ну, я хочу знать лучший способ понизить порядок массива до 3, если это возможно, пример кодаЯ пытался использовать laplace, но я запутался в циклах, которые я решил на некоторое время оставить.
public function calc ($order, $matriz)
{
// If the order equals 1: the element is the determinant
if ($order == 1) {
$ this->det = $matriz[0][0];
}
// If the order equals 2: call the @segOrder function
else if ($order == 2) {
segOrder($matriz);
}
// If the order is 3: call the function @sarrus
else if ($order == 3) {
sarrus($matriz);
}
// If the order is greater than 3: call the function @leaveOrder to lower the array order to 3 and then use @sarrus to have the determinant
else if ($order > 3) {
$matriz = lowerOrder($matriz, $order);
sarrus($matriz);
}
return $this->det;
}
Макет массива:
$matriz = array (
array (1,2,3),
array (4,5,6),
array (7,8,9)
);