Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/263: Рейтинг темы: голосов - 263, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 4

Нахождение детерминанта (определителя) матрицы

30.09.2010, 16:42. Показов 51005. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня вот код есть для нахождения детерминанта (определителя) матрицы 5х5
а как сделать, чтобы я мог сам ввести данные матрицы?

исправьте код пожалуйста


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
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <cmath>
#include <ctime>
 
double determ(int** Arr, int size);
 
int main()
{
        srand(time(NULL));
        int size=3;
        int**Arr;
        Arr=new int*[size];
        for(int i=0;i<size;++i)
                Arr[i]=new int[size];
        for(int i=0;i<size;++i)
                for(int j=0;j<size;++j)
                        Arr[i][j]=0+rand()%5-1+1;
        for(int i=0;i<size;++i)
        {
                for(int j=0;j<size;++j)
                        std::cout<<Arr[i][j]<<' ';
                std::cout<<std::endl;
        }
        std::cout<< determ(Arr, size) <<'\n';
        for(int i=0;i<size;++i)
                delete[] Arr[i];
        delete[] Arr;
        return 0;
}
 
double determ(int** Arr, int size)
{
        int i,j;
        double det=0;
        int** matr;
        if(size==1)
        {
                det=Arr[0][0];
        }
        else if(size==2)
        {
                det=Arr[0][0]*Arr[1][1]-Arr[0][1]*Arr[1][0];
        }
        else
        {
                matr=new int*[size-1];
                for(i=0;i<size;++i)
                {
                        for(j=0;j<size-1;++j)
                        {
                                if(j<i) 
                                        matr[j]=Arr[j];
                                else
                                        matr[j]=Arr[j+1];
                        }
                        det+=pow((double)-1, (i+j))*determ(matr, size-1)*Arr[i][size-1];
                }
                delete[] matr;
        }
        return det;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.09.2010, 16:42
Ответы с готовыми решениями:

Нахождение детерминанта матрицы и её ручной ввод
Здравствуйте! Который вот уже день бьюсь! Не могу найти ошибку! Нужно поставить ручной ввод и найти детерминант. Матрица сначала...

Нахождение детерминанта матрицы. Матрица читается из файла.
#include &lt;stdlib.h&gt; #include &lt;stdio.h&gt; #include &lt;sys/file.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;math.h&gt; using...

Нахождение определителя матрицы
Написать программу нахождения определителя матрицы

6
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
30.09.2010, 16:49
Та пожалста. Но опять же я не уверен что пять на пять он посчитает верно.

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
52
53
54
55
56
57
58
59
#include <iostream>
#include <cmath>
 
double determ(int** Arr, int size);
 
int main()
{
        int size=5;
        int**Arr;
        Arr=new int*[size];
        for(int i=0;i<size;++i)
                Arr[i]=new int[size];
        for(int i=0;i<size;++i)
                for(int j=0;j<size;++j)
                        std::cin>>Arr[i][j];
        for(int i=0;i<size;++i)
        {
                for(int j=0;j<size;++j)
                        std::cout<<Arr[i][j]<<' ';
                std::cout<<std::endl;
        }
        std::cout<< determ(Arr, size) <<'\n';
        for(int i=0;i<size;++i)
                delete[] Arr[i];
        delete[] Arr;
        return 0;
}
 
double determ(int** Arr, int size)
{
        int i,j;
        double det=0;
        int** matr;
        if(size==1)
        {
                det=Arr[0][0];
        }
        else if(size==2)
        {
                det=Arr[0][0]*Arr[1][1]-Arr[0][1]*Arr[1][0];
        }
        else
        {
                matr=new int*[size-1];
                for(i=0;i<size;++i)
                {
                        for(j=0;j<size-1;++j)
                        {
                                if(j<i) 
                                        matr[j]=Arr[j];
                                else
                                        matr[j]=Arr[j+1];
                        }
                        det+=pow((double)-1, (i+j))*determ(matr, size-1)*Arr[i][size-1];
                }
                delete[] matr;
        }
        return det;
}
2
0 / 0 / 0
Регистрация: 17.11.2009
Сообщений: 4
11.10.2010, 22:57  [ТС]
всё чётко!
работает отлично!
я Вам безмерно благодарен !!!!!!
0
7 / 7 / 1
Регистрация: 21.03.2010
Сообщений: 397
06.12.2012, 23:12
А можно объяснить по какому принципу подсчитывается детерминант
0
 Аватар для Resume
143 / 133 / 69
Регистрация: 08.11.2013
Сообщений: 767
Записей в блоге: 5
19.05.2014, 00:01
Большее спасибо за функцию ForEveR !!!
0
0 / 0 / 1
Регистрация: 27.09.2013
Сообщений: 16
22.12.2014, 21:53
ForEveR, а не подскажите как эту функцию можно использовать как член класса матрица точнее как ее вызывать в main я создал тему не могу справиться помогите если не трудно
И снова класс Матрицы с функция-член класса для нахождения определителя
0
0 / 0 / 0
Регистрация: 12.02.2015
Сообщений: 28
22.02.2015, 22:11
Ребят вопрос может не совсем по теме но всё же! Если квадратная матрица симметрична, то как найти её определитель. Пример во вложении.
Изображения
 
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.02.2015, 22:11
Помогаю со студенческими работами здесь

Нахождение определителя матрицы
Здравствуйте! Функция det правильно находит определитель для матрицы temp1, но неправильно для матрицы temp. Подскажите, пожалуйста,...

Нахождение определителя матрицы
Здравствуйте, помогите пожалуйста дописать. Нужно было реализовать в виде модуля, программку, которая выполняет действия над квадратными...

Нахождение определителя матрицы методом гаусса
Нахождение определителя методом гауса #include &lt;stdio.h&gt; #include&lt;locale.h&gt; #include&lt;math.h&gt; #include&lt;conio.h&gt; int main() ...

Исправить код c++ ,нахождение определителя матрицы
Необходимо найти определитель матрицы,выдает ошибку. Так же ,может кто предложит свой код нахождения определителя матрицы,нужно срочно. ...

Нахождение определителя матрицы через рекурсию
Помогите, пожалуйста, реализовать на с программу нахождения определителя матрицы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru