Составление системы уравнения

316
07 января 2018, 07:02

Всем привет. Возникла проблема при составлении системы уравнения. В двумерный массив добавляю уравнения(они не даны сразу, я их добавляю и мне надо проверить подойдет ли это уравнение):

1011
1207
0308

Где первые 3 значения коэффиценты, а 4 число ответ. Чтобы мне решить эту систему Гауссом, уравнения должны быть линейно независимые и не должно быть столбца из одних 0. При добавлении я проверяю строку на линейно независимую с предыдущей таким образом:

void algorithm(int a,int b,int p)
{
    vector<int> vector1(3);
    vector<int> vector2(3);
    vector1[0] = 5;
    vector1[1] = 3;
    vector1[2] = 2;
    int mas[3][4];
    int r = 0;
    int e = 0;
    int s = 1;
    int c = 0;
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 4; j++)
            mas[i][j] = 0;
    for (int i = 0; i < vector1.size(); i++)
    {
        r = powmod(a,s,p);
        mas[i][3] = s+p-1;//тут заносим ответ системы
        while (e!=vector1.size()) // тут мы считаем коэффиценты у уравнения
        {
            if (r%vector1[e] == 0)
            {
                r /= vector1[e];
                mas[i][e]++;
            }
            else
                e++;
        }
         if(i != 0)//тут проверяем на нелинейность
        {
             for (int j = 0; j < vector1.size(); j++)
             {
                 c = mas[i][j] * mas[i - 1][j];
             }
        }
         if ((r != 1) || (c != 0))//тут мы удаляем уравнения если оно получилось линейнозависимое, или наше число нельзя польностью разложить
         {
             for (int j = 0; j < vector1.size(); j++)
                 mas[i][j]=0;
             i--;
         }
        e = 0;
        s++;
    }
}

Если получилось линейно зависимое то я удаляю заполненную строку и добавляю другое равнение. Правильно ли я делаю? Как еще параллельно сделать проверку, чтобы не было столбца из одних 0?

READ ALSO
привязка и отвязка array object (openGL)

привязка и отвязка array object (openGL)

Изучал код ,рисующий треугольник(с известного learnopengl) меня интересует вот такой момент

297
Сравнение итераторов STL

Сравнение итераторов STL

Вопрос: почему в цикле while проверка на равенство работает некорректноДобавление условия if исправляет ситуацию ?

319
Как обучится этому? [требует правки]

Как обучится этому? [требует правки]

Ребят я начал углубляться в программирование,но увы есть много проблем с обучением1

311
Чтение чисел из файла с++ [требует правки]

Чтение чисел из файла с++ [требует правки]

Есть файл в нем числаВывести все числа удалив из них повторяющиеся цифры

309