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

Улучшение алгоритма вычисления определителя матрицы, порядка n>3 - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Деревья http://www.cyberforum.ru/cpp-beginners/thread627066.html
Я не особо разбираюсь в программировании (т.к это не связано с моей будущей специальностью,но те кто составлял учебный курс так не считают )поэтому не бросайтесь камнями. Суть задания: "Информационное поле двоичного упорядоченного дерева содержит целое число.Удалить из дерева все узлы,информационное поле которых превышает некоторое вводимое пользователем число." У меня возникли некоторые...
C++ Существование объекта Здравствуйте, есть довольно сложное и интересное задание Есть класс someClass нужно сделать так чтобы: 1) Его объекты можно было создавать только динамически 2) Даже созданные динамически объекты хранить нигде нельзя(не допускаются указатели на память, объект сам удаляется) То есть можно так: new someClass(); но не так: someClass *sc = new someClass(); someClass sc; http://www.cyberforum.ru/cpp-beginners/thread627039.html
Подсчёт количества подстрок C++
Посмотрите пожалуйста нормально ли написана функция, которая считает количество подстрок? int SearchSubString(char *s1,char *s2){ int result = 0; while(*s1){ if(strstr(s1,s2)) result++; else return result;
Переворот строки C++
Почему при использовании указателя ошибка, а при использование массива всё нормально? void RevStr(char *str){ char *start,*end; char t; start = str; end = &str;
C++ Массивы: вычислить сумму положительных и количество отрицательных элементов массива http://www.cyberforum.ru/cpp-beginners/thread626953.html
Здравствуйте. Столкнулся с проблемой, нужно вычислить сумму положительных и количество отрицательных элементов массива v , предварительно числа нужно ввести с клавиатуры. У меня абсолютно ничего не получается. Хотел вводить каждое число отдельно, если можно их как-то сразу все ввести было бы вообще отлично. Помогите пожалуйста, а то я вообще не вехал. То что я пытался делать ниже, но там вылазят...
C++ Добавить после каждой цифры 2 нуля Строки. Добавить после каждой цифры 2 нуля. например: ввели: а1 б2 абв получили: а100 б200 абв на данный момент при одной цифре выдает верно+мусор, при двух и более цифрах выдает ересь. #include <iostream> #include <ctype.h> #include <stdio.h> подробнее

Показать сообщение отдельно
Nuclear_Razor
49 / 2 / 0
Регистрация: 22.07.2012
Сообщений: 103
Записей в блоге: 1
22.07.2012, 06:21     Улучшение алгоритма вычисления определителя матрицы, порядка n>3
Всем доброго времени суток, я достаточно долго искал шаблон кода для вычисления определителя квадратной матрицы, нашел на просторах рунета более-менее нормальный алгоритм, все считает верно для матрицы размерностей n=1,2,3; Но уже при 4-ом порядке считает абсолютно неправильно.

Шаблон программы:
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
int det (int a[10][10], int razm)   //Нахождение определителя
//int a[10][10]; int I=0; - массив и размерность (I-строки) указаны в главной функции
{
int l;
int d;
double sum11=1,sum12=0, sum21=1, sum22=0;
//Находим детерминант
if(razm==1)
{
        return a[0][0];
}
    if(razm==2)
    {
 
            return (a[0][0]*a[1][1]-a[0][1]*a[1][0]);
    
    }
        for (int i=0;i<razm;i++)
        {
                sum11=1; l=2*razm-1-i;sum21=1;
        for (int j=0;j<razm;j++)
        {
            sum21*=a[j][l%razm];
            l--;
            sum11*=a[j][(j+i)%(razm)];
        }
        sum22+=sum21;
        sum12+=sum11;
    }
    d=sum12-sum22;
return d;
}
Честно говоря, я не учусь на программиста, а только на физика), но мне бы хотелось довести до ума мою программу, основная программа производит вычисление СЛАУ методом Гаусса, корни находит верно, но нужен алгоритм, доступный и понятный, без всяких указателей (я ими не умею практически пользоваться).

P.S. Встречал много отзывов о неправильности использования рекурсии для нахождения детерминанта? С чем это может быть связано?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 03:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru