Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2017, 12:28   #1
aionpro
 
Регистрация: 29.11.2017
Сообщений: 7
По умолчанию матрица java

привет
как тут код объяснить подскажите пж

Код:
public double CalculateMatrix(double[][] matrix) {
        double calcResult = 0.0;
        if (matrix.length == 2) {
            calcResult = matrix[0][0] * matrix[1][1] - matrix[1][0] * matrix[0][1];
        } else {
            int koeff = 1;
            for (int i = 0; i < matrix.length; i++) {
                if (i % 2 == 1) {
                    koeff = -1;
                } else {
                    koeff = 1;
                };

                calcResult += koeff * matrix[0][i] * this.CalculateMatrix(this.GetMinor(matrix, 0, i));
            }
        }

        return calcResult;
    }

    private double[][] GetMinor(double[][] matrix, int row, int column) {
        int minorLength = matrix.length - 1;
        double[][] minor = new double[minorLength][minorLength];
        int dI = 0;
        int dJ = 0;
        for (int i = 0; i <= minorLength; i++) {
            dJ = 0;
            for (int j = 0; j <= minorLength; j++) {
                if (i == row) {
                    dI = 1;
                } else if (j == column) {
                    dJ = 1;
                } else {
                    minor[i - dI][j - dJ] = matrix[i][j];
                }
            }
        }

        return minor;

    }

    public static void main(String[] args) {

        Scanner sc2 = new Scanner(System.in);
        System.out.println("Введите размер матрицы :");
        int n = sc2.nextInt();

        double[][] A = new double[n][n];
        Random rnd = new Random();
        for (int i = 0; i < A.length; i++) {
            for (int j = 0; j < A[i].length; j++) {
                A[i][j] = rnd.nextInt(9) + 1;
            }
        }
        System.out.println("Матрица:");
        for (int i = 0; i < A.length; i++, System.out.println()) {
            for (int j = 0; j < A[i].length; j++) {
                System.out.print(A[i][j] + " ");
            }
        }

        JavaApplication43 mc = new JavaApplication43();
        double Result = mc.CalculateMatrix(A);
        System.out.println("Определитель:");
        System.out.println(Result);
    }

}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 11.12.2017 в 13:23.
aionpro вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Матрица. Задана матрица X[N,N], где N<=15. В каждом столбце матрицы поменять местами минимальный элемент и элемент главной диагона _Marchel_ Паскаль, Turbo Pascal, PascalABC.NET 5 28.11.2015 16:23
Непонятки с DirectX (матрица поворота, камера, матрица проекции) ROD Общие вопросы C/C++ 2 17.09.2010 17:00
Матрица умножение по диагоналей на Java языке N___G Помощь студентам 3 12.09.2010 18:56
TurboPascal: граф, матрица смежности и матрица инцидентности. ulala Помощь студентам 0 02.12.2009 10:11