Форум программистов, компьютерный форум CyberForum.ru

Определитель матрицы - нужен полноценный пример - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка вставками двухсвязного списка http://www.cyberforum.ru/cpp-beginners/thread850132.html
По заданию требуется отсортировать список по возрастанию. Организовал структуру списка,функцию по добавлению и удалению элементов, но застрял на сортировке,пытался сделать по соответствующему алгоритму для массивов,вот что получилось: struct List_t { int mInfo; // значение,хранящееся в данном узле List_t* mpNext; //указатель на следующий узел списка List_t* mpPrev; //указатель на...
C++ Подпрограмма для обнаружения корней квадратного тричлена Доброго дня, нужно написать подпрограмму для обнаружения корней квадратного тричлена. #include <math.h> #include <iostream.h> void koef(double a, double c); void D(double a,double b,double c); int main(void) { double a,b,c; cout<<"Wwedit koeficienty truczlena\n"; cout<<"\na="; http://www.cyberforum.ru/cpp-beginners/thread850124.html
Поиск первой гласной в массиве char и возврат ее номера C++
Подскажите, пожалуйста, реализацию на с++ следующей задачи: найти первую по счету гласную в массиве типа char и записать ее номер в переменную.
Двусвязные списки в с++ C++
Помогите пожалуйста, отредактировать ошибки в данной программе. Я недостаточно хорошо разбираюсь в объявлении глобальных и локальных переменных и их использовании в классах. Задание: реализовать указанные операции с двусвязным списком: 1)Построение структуры путем запроса элементов структуры у пользователя (ввод с клавиатуры) 2) включение нового элемента в структуру 3)исключение элемента из...
C++ При передачи указателя на обьект ошибка,а при передаче ссылки на указатель нет. Почему? http://www.cyberforum.ru/cpp-beginners/thread850065.html
Hi All! class SomeObj { public: int x; }
C++ метод перестановки максимального элемента Метод перестановки максимального элемента. Пусть дано некоторое число k,(0<k<n). Находим максимальныйэлемент среди чисел a0,...,ak. Пусть этим максимумом является некоторый элемент aj. Обмениваем значения элементов aj и ak. Указанную процедуру последовательно выполняем для k=n−1,n−2,...,1. подробнее

Показать сообщение отдельно
Ternsip
 Аватар для Ternsip
660 / 188 / 6
Регистрация: 10.05.2012
Сообщений: 595
02.05.2013, 14:29     Определитель матрицы - нужен полноценный пример
халява, тупо делаешь треугольную матрицу и берёшь произведение элементов на главной диагонали

Добавлено через 13 минут
SuperVarenik,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <stack>
#include <deque>
#include <set>
#include <string>
#include <limits>
#include <fstream>
 
using namespace std;
 
int main(){
    freopen("input.txt", "rt", stdin);
    freopen("output.txt", "wt", stdout);
    int n;
    cin >> n;
    vector < vector <double> > a(n, vector <double> (n, 0));  
    for (int i = 0; i < n; i++){
        for (int j = 0; j < n; j++){
            scanf("%lf", &a[i][j]);
        }
    }   
    double det = 1;
    for (int i = 0; i < n; i++){
        int row = i;
        int mx = a[i][i];
        for(int k = i+1; k < n; k++){
            if (abs(a[k][i]) > mx){
                row = k;
                mx = abs(a[k][i]);
            }
        }
        if (row != i) {
            det *= -1;
            swap(a[row], a[i]);
        }
        for (int j = i+1; j < n; j++){
            double e = a[j][i]/a[i][i];
            for (int k = i; k < n; k++){
                a[j][k] -= e*a[i][k];
            }
        }
    }
    for (int i = 0; i < n; i++)
        det *= a[i][i];
    printf("%.15lf", det);
    return 0;
}
матрица 200 на 200 считается за 31 ms
 
Текущее время: 02:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru