2016-12-17 1 views
-2

Ich muss einen Algorithmus machen, der eine Determinante berechnet, die bestimmten Schritten folgt.Gibt es eine Möglichkeit, einen Iterator alle 3 Operationen zu erhöhen?

Einer der Schritte ist, ich muss (auf Spalten) jede Spalte mit dem ersten Element in der Matrix (der Größe nxn) multiplizieren und es mit dem ersten Element in der Spalte teilen (Offensichtlich ab der zweiten Spalte)

Zum Beispiel dieser 1 Transformationen in diesen 2

Meine Vorstellung von Code ist so etwas wie

for(i=start+1;i<end;i++) 
{for(j=start;j<end;++) 
{ 
    if(matrix[start][start]!=0) 
    { 
    matrix[i][j]=matrix[i][j]*(matrix[start][start]/matrix[start][j])  



    }}} 

wo start = 0 und end = n

Aber ich möchte ich alle 3 Operationen erhöhen, damit ich auf Spalten arbeiten kann.

Lets setzt es noch einfach:

Ij auf dem Colum gehen wollen (während ich nicht werde modifiziert) und bei Erreichen der Säule beenden i mit einer und für den Betrieb auf erhöhen die nächste Spalte.

+0

Jetzt erhöhen Sie 'i' um 1. Das macht der Operator' ++ '. Wie denkst du, könntest du es um drei erhöhen? Wie würdest du 3 zu "i" außerhalb einer Schleife hinzufügen? –

+0

Meine Idee ist, dass ich möchte, dass j auf die Kolumne geht (während ich nicht modifiziere) und wenn es bis zum Ende der Kolumne reicht, um mit einer zu erhöhen und auf der nächsten Spalte zu operieren. – THESCARSCER

Antwort

0

Sie können dies tun, indem Sie für Schleifen verschachteln, wie Sie es bereits tun. Zum Beispiel:

int N=3; /* size of matrix */ 
for (int j=0; j < N; j++) { /* for each column... */ 
    printf("starting column %d\n", j); 
    for (int i=1; i < N; i++) { /* for each row except the first one... */ 
     printf(" do something i=%d j=%d\n", i, j); 
    } 
} 

Es wird der Druck am Ende:

starting column 0 
    do something i=1 j=0 
    do something i=2 j=0 
starting column 1 
    do something i=1 j=1 
    do something i=2 j=1 
starting column 2 
    do something i=1 j=2 
    do something i=2 j=2 
1

Statt i++ können Sie i += 3 verwenden, wenn alles, was Sie tun wollen Zählung von 3s durch die Schleife ist.

Verwandte Themen