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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
xsergx
Сообщений: n/a
#1

Опредилитель матрицы - C++

08.01.2011, 18:09. Просмотров 586. Ответов 5
Метки нет (Все метки)

Не могу написать код реккурсивной ф-ии на С для подсчёта опредилителя матрцы nxn, помогите кто чем может: или кодом или алгоритмам зарание благодарю
P.S. использовать реккурсию
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2011, 18:09     Опредилитель матрицы
Посмотрите здесь:

Матрицы[макс. элементы, получение новой матрицы] C++
C++ Будем называть соседями элемента с индексами ij некоторой матрицы такие элементы этой матрицы, соответсвующие индексы которых отличаются от i и j не..
Построение новой матрицы по части заданой матрицы C++
Если в строках матрицы есть хотя бы один положительный элемент ,то поменять знаки всей матрицы на противоположные C++
Характеристикой столбца целочисленной матрицы назовем сумму модулей его отрицательных нечетных элементов. Переставляя столбцы заданной матрицы, распол C++
Добиться того, чтобы один из элементов матрицы, обладающий наибольшим по модулю значением, располагался в левом верхнем углу матрицы C++
Транспонировать квадратную матрицу, используя только оператор for. Новой матрицы не создавать. Вывести исходную и транспониро-ванную матрицы C++
Графы: матрицы соединений и матрицы связей C++
C++ Матрицы. Необходимо найти значение среднего арифметического строк матрицы, исключая нулевые, в случае, если строка имеет отрицательный элемент(ы)
C++ Если сумма индексов каких-либо двух элементов матрицы, расположенных ниже главной диагонали, равна минимальному элементу матрицы, то..
C++ В матрицы A (m, n) каждый элемент aij заменить минимальным среди элементов подматрицы A '(i, j), которая расположена в верхнем левом углу матрицы A
Для заданной матрицы найти такие k, что k-ая строка матрицы совпадает с k-ым столбцом C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
deadlock
 Аватар для deadlock
375 / 354 / 8
Регистрация: 14.12.2010
Сообщений: 1,265
09.01.2011, 16:42     Опредилитель матрицы #2
по матрицам уже столько было:
http://www.cyberforum.ru/search.php?searchid=2601694
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
09.01.2011, 16:54     Опредилитель матрицы #3
xsergx, слово «рекурсия» пишется с одной «к».
npo100smile
Сообщений: n/a
14.01.2011, 15:12     Опредилитель матрицы #4
Всем привет ! Не знаю, туда ли обращаюсь, но если знает кто то прошу помочь ...



Подсчитать сумму элементов 3-ей строки 5-ого порядка.


Щас на зачёте сижу ПОМОГИТЕ !!!!!!!!!

Добавлено через 2 часа 11 минут
В матрицах 0 выручайте ...
Genius Ignat
1234 / 772 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
14.01.2011, 15:41     Опредилитель матрицы #5
npo100smile, держи.
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
#include <stdio.h>
#include <stdlib.h>
 
#define H 5
#define W 5
int main(void)
{
 
 int m[H][W] = {
    {1,2,3,4,5},
    {6,7,8,1,0},
    {1,1,6,7,2},
    {6,7,7,8,9},
    {9,7,6,5,5}
 };
 int sum = 0;
 int i;
 for( i = 0 ; i < W ; i++ )
     sum = sum + m[2][i];
 
 printf("sum: %d",sum);
 printf("\n");
 
 system("pause");
 return 0;
}
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
15.01.2011, 16:15     Опредилитель матрицы #6
xsergx, правда на С++)))
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*Определитель матрицы*/
 
#include <vector>
#include <algorithm>
#include <fstream>
#include <iterator>
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class nulled : public unary_function<vector<double>, bool>
{
public:
        bool operator() (const vector<double>& Buffer)
        {
                return !(*Buffer.begin());
        }
};
 
class chg : public binary_function<vector<double>, vector<double>, bool>
{
public:
        bool operator()(const vector<double>& Buffer1, const vector<double>& Buffer2)
        {
                return *Buffer1.begin() > *Buffer2.begin();
        }
};
 
class chg2 : public binary_function<vector<double>, vector<double>, bool>
{
public:
        bool operator()(const vector<double>& Buffer1, const vector<double>& Buffer2)
        {
                return *Buffer1.begin() < *Buffer2.begin();
        }
};
 
void out(vector<vector<double> >& Buffer)
{
        cout << endl;
        for (vector<vector<double> >::iterator i = Buffer.begin(), end = Buffer.end(); i != end; ++i, cout << endl)
                copy(i->begin(), i->end(), ostream_iterator<double>(cout, "  "));
}
 
double Determinant(vector<vector<double> >& Buffer)
{
        sort(Buffer.begin(), Buffer.end(), chg2());     
        if (all_of(Buffer.begin(), Buffer.end(), nulled()))
                return 0;
        vector<vector<double> >::iterator fisrt = Buffer.begin();
        if (Buffer.size() == 1)
                return *fisrt->begin();
        for (vector<vector<double> >::iterator i = Buffer.begin() + 1, end = Buffer.end(); i != end; ++i)
        {
                double T = *i->begin() / *fisrt->begin(); 
                transform(fisrt->begin(), fisrt->end(), i->begin(), i->begin(),
                [&T](const double& value1, const double& value2)->double
                {
                        return value2 - value1 * T;
                });
        }
        sort(Buffer.begin() + 1, Buffer.end(), chg());  
        vector<vector<double> > matrix(Buffer.size() - 1);
        for (vector<vector<double> >::iterator i = Buffer.begin() + 1, end = Buffer.end(), Tmp = matrix.begin(); i != end; ++i)
                copy(i->begin() + 1, i->end(), back_inserter(*Tmp++));
        return *fisrt->begin() * Determinant(matrix);
}
 
int main()
{
        fstream file("test.txt");
        size_t n; 
        file >> n;
        vector<vector<double> > matrix(n, vector<double>(n));
        for (vector<vector<double> >::iterator i = matrix.begin(), end = matrix.end(); i != end; ++i)
                for (vector<double>::iterator j = i->begin(), end = i->end(); j != end; ++j)
                        file >> *j;
        cout << "Determinate \n" << static_cast<int>(Determinant(matrix));
        _getch();
        return EXIT_SUCCESS;
}
Yandex
Объявления
15.01.2011, 16:15     Опредилитель матрицы
Ответ Создать тему
Опции темы

Текущее время: 15:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru