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

Функция time для вычисления скорости нахождения Определителя.Dev-C++7.3.1.3 - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ дорешать класс http://www.cyberforum.ru/cpp-beginners/thread264869.html
Разработать класс, набор методов(конструктор, деструктор и указанные методы) для программной модели заданного объекта. Объект "вектор на плоскости" заданный в системе декарт.координат.Начало вектора расположено на начале координат.Конструктор должен позволять создавать объекты без и с начальной инициализацией.Реализовать метод print и EQ- сравнение двух векторов и перевод координат вектора в...
C++ Записать текст из консоли в файл Написать программу выводящую текст в файл (system("echo text >> text.txt") не подходит, так как пользователь сам должен вводить текст). Буду очень благодарен. http://www.cyberforum.ru/cpp-beginners/thread264862.html
последовательные классы C++
Составить программу, используя последовательные классы стандартной библиотеки шаблонов С++, которая содержит текущую информацию о заявках на авиабилеты. Каждая заявка содержит: • пункт назначения; • номер рейса; • фамилию и инициалы пассажира; • желаемую дату вылета. Программа должна обеспечивать: • хранение всех заявок в виде списка; • добавление заявок в список; • удаление...
C++ Класс-шаблон
Создать класс-шаблон, содержащий поля для хранения одномерного массива и количества элементов в массиве. Описать методы для инициализации и вывода элементов массива на экран, а так же для подсчета суммы элементов массива, расположенных между первым и последним нулевыми элементами. Продемонстрировать работу методов класса.
C++ ошибка в программе? http://www.cyberforum.ru/cpp-beginners/thread264829.html
написать программу по решению системы уравнений. y=(-1)^(x-a) если x>a y=(x^3)/(x+a) если x<a y=sin(3x) если x=a^3 y=sqrt(a-5) если a-2<=x<=2a #include<math.h> #include<conio.h>
C++ Условие победы! Никак не могу понять как сделать условие победы для игры крестики нолики на большом поле. Там где для победы надо выстроить 5 в ряд(по горизонтали либо по вертикали либо по диагоналям). Поле у меня размерности 15 на 15. Помогите пожалуйста! подробнее

Показать сообщение отдельно
USHЁL
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 93
27.03.2011, 16:11  [ТС]     Функция time для вычисления скорости нахождения Определителя.Dev-C++7.3.1.3
Благодаря Вам понял,что дело в размерности.
Не понятен вывод после ввода матрицы 1000 на 1000
На выходе Detrminant = -inf
Что это означает?

Для матрицы 1000*1000
time = 31.797
Для матрицы 1111*1111
time = 43.547
Determinent = inf

Как Вы считаете код сносно реализован или нужно менять?

main:
Код
for(int i=0;i<n;i++)
          {
            line.clear();
             for(int j=0;j<n;j++)
             {
               //cin>>temp;
               temp = rand();
               line.push_back(temp);                  
                //cout<<"Vvedite znachenie:\n";
             }
      
            square_matrix.push_back(line);
          }
determinant:
Код
double determinant(std::vector< std::vector<double> >& matrix)  //nahodim opredelitel 
{   //function find determinant
    //
    int i=0, j=0;
    double koef = 1;
    double lastKoef = 0;
    bool checkKoefIsNull = false;
    int length = matrix.size();
    int fullCol = length;
    
    clock_t time_on;
    time_on = clock();
     for(i=0; i<length && koef; i++)
    {
        if(matrix[i][j] != 0)
        {
            if(matrix[i][j] < 0)
            {
                for(int j=0; j<fullCol; j++)
                    matrix[i][j] *= -1;
                koef *= -1;
            }
            double lastKoef = matrix[i][j];
            for(int k=0; k<fullCol; k++)
                matrix[i][k] /= lastKoef;
            koef *= lastKoef;
            for(int nextRow=i+1; nextRow<length; nextRow++)
            {
                lastKoef = matrix[nextRow][j];
                for(int nextCol=j; nextCol<fullCol; nextCol++)
                    matrix[nextRow][nextCol] -= lastKoef*matrix[i][nextCol];
            }
            ++j;
            checkKoefIsNull=false;
        }
        else
        {
            for(int k=0; k<fullCol; k++)
                std::swap(matrix[i][k],matrix[length-1][k]);
            --i;
            koef *= -1;
            if(checkKoefIsNull)
            {
                ++i;
                koef = 0;
            }
            checkKoefIsNull = true;
        }
     }//end for
     
  
     cout<<"time: "<<((double)clock() - time_on)/CLOCKS_PER_SEC<<endl;
        return koef;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru