• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Код по алгоритму, приведенному тут. Работает неверно

  • Автор темы Terra
  • Дата начала
T

Terra

Здравствуйте!
Вот, собственно алгоритм, который по идее должен быть реализован, но чего-то где-то ошибка

Обрабатывается массив p_Q[deg][deg]
Код:
int * c = new int [deg];
int i, j, r, k, flag, p;
flag=0;
r=0;
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){
flag++;
if (flag)
break;
}
if (flag){
for (i=0; i< deg; i++)
this->p_Q[i][j]*=(-1/(this->p_Q[k][j]));
for (i=0; i<deg; i++)
for(p=0; p<deg; p++)
if (i!=j)
this->p_Q[p][i]+=this->p_Q[p][j]*this->p_Q[k][i];
c[j]=k;
}
}
flag=0;
}
Спасибо
 
T

Terra

вариант номер два, тоже не верный
Код:
int * c = new int [deg];
int i, j, r, k, flag, p;
flag=0;
r=0;
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){
flag++;
if (flag)
break;
}
if (flag){
for (i=0; i< deg; i++)
this->p_Q[i][j]*=(-1/(this->p_Q[k][j]));
for (i=0; i<deg; i++)
if (i!=j)
this->p_Q[i][j]*=this->p_Q[k][i];
for (p=0; p<deg; p++)
for (i=0; i<deg; i++)
if (i!=j)
this->p_Q[p][i]+=this->p_Q[p][j];
c[j]=k;
}
}
flag=0;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!