Всем привет. Возникла проблема при составлении системы уравнения. В двумерный массив добавляю уравнения(они не даны сразу, я их добавляю и мне надо проверить подойдет ли это уравнение):
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?
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости