Wyznacznik macierzy Gauss

0

double macierz::wyz ()
{
macierz X(n,m);
X.kolor=1;
double w=1;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
X.t[i][j]=t[i][j];
for(int k=0;k<m-1;k++)
for(int i=k+1; i<n; i++)
for(int j=k+1;j<m;j++)
X.t[i][j]=X.t[i][j]-X.t[k][j]X.t[i][k]/X.t[k][k];
for(int i=0; i<n; i++)
w=w
X.t[i][i];
if(X.kolor==1)
X.usun_tymcz();
return w;
}

móglby mi ktoś wytłumaczyc jak to działa,bo nie moge tego rozszyfrować

4

Czasami odnoszę wrażenie, że Brainfuck jest bardziej czytelny od niektórych kodów w C/C++.
Sformatuj ten kod normalnie.

0

Wyzerowujesz dolną część macierzy (pod główną przekątną) odejmując od każdego wiersza pewną wartość pomnożoną na inny wiersz.
Po czym wyznacznikiem jest iloczyn liczb na głównej przekątnej.

0

i- przesuwa mi o kolejny wiersz w doł,?
k-przesuwa mnie o kolumne w prawo,?
a czym jest j?
dobrze myslę?
ogolnie wiem na czym polega metoda Gaussa ale biorac ten kod nie moge zczaic która literka za co odpowiada,ze przesuwam sie do kolejnych pól

0
zapora napisał(a):

i- przesuwa mi o kolejny wiersz w doł,?
k-przesuwa mnie o kolumne w prawo,?
a czym jest j?
dobrze myslę?
ogolnie wiem na czym polega metoda Gaussa ale biorac ten kod nie moge zczaic która literka za co odpowiada,ze przesuwam sie do kolejnych pól
Najwyraźniej nie wiesz na czym polega metoda Gaussa, bo tu się nic nie przesuwa żadnych wierszy. Poczytaj ma wiki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1