Соответствие моего кода и псевдокода из алгоритма

  • Автор темы Terra
  • Дата начала
Статус
Закрыто для дальнейших ответов.
T

Terra

#1
Всем доброго времени суток:newconfus:
Посмотрите пожалуйста, что не так в коде, который реализован по этому псевдокоду. Ошибок нет, но все равно что-то не так. Мой результат отличается от ожидаемого ввиду неправильной реализации вот сего:

роль матрицы Q исполняет p_Q, все остальное имеет те же имена переменных, что и в псевдокоде.
Код:
int * c = new int [deg];
int j, k, r, i, l, s;
bool j_flag;
r=0;
j_flag = false;
for (i=0; i<deg; i++)
c[i]=-1;
for (k=0; k<deg; k++)
{
for (j=0; j<deg; j++)
if (this->p_Q[k][j]!=0 && c[j]<0)
{
j_flag = true;
for (i=0; i<deg; i++)
this->p_Q[i][j]*=(-1/this->p_Q[k][j]);
break;
}
if (j_flag)
{
for (i=0; i<deg; i++)
{
if (i!=j)
{
for (l=0; l<deg; l++)
this->p_Q[l][i] = this->p_Q[l][i] + this->p_Q[k][i]*this->p_Q[l][j];
c[j] = k;
}
}
j_flag = false;
}
else
{
r++;
for (j=0; j<deg; j++)
v[r][j] = 0;
for (s=0; s<deg; s++)
{
j = c[s];
if (j>=0)
this->v[r][j] = this->p_Q[k][s];
}
this->v[r][k] = 1;
}
}
Спасибо.
 
Статус
Закрыто для дальнейших ответов.