Das neue Auswendig lernen und die neuen Übungen - 0003

Benutzeravatar
davidvajda.de
Site Admin
Beiträge: 1535
Registriert: Di Jul 18, 2023 8:36 pm
Wohnort: D-72072, Tübingen
Kontaktdaten:

Re: Das neue Auswendig lernen und die neuen Übungen - 0003

Beitrag von davidvajda.de »

So, jetzt machen wir das - ich nehme den Algorithmus und was daran schwer ist - weil der Algorithmus pred verwendet, aber eine Rekursion, wird die Rekursion irgendwann am Anfang sein

Ich denke, die übliche Wald erzeugung genügt nicht, weil jeder Weg gegangen werden muss. Das Problem, dass Pred bei der letzten, vorletzten Rekursion wieder hergestellt werden muss

Ich denke, das lohnt sich eben einen stapel zu verwenden, das letzte pred drauf zu tun und dann wieder als false zu markieren

So, jetzt fülle ich erst Mal die Adjazenzmatrix. Ich tue die Abstände rein.

So, ich schreibe jetzt erst Mal Städte und Abstände auf, in das Array der Adjazenzmatrix

Code: Alles auswählen

// ich habe jetzt hier eine neue funktion

void init_adjazenzmatrix_city (int a [N][N]) {
    /*
     *
     *
}

Da schreibe ich jetzt im Kommentar, die Abstände rein.

Code: Alles auswählen

void init_adjazenzmatrix_city (int a [N][N]) {
    /* Holzmarkt, 0
     * Judengasse, 1
     * Neckarbruecke, 2
     * Jakobuskirche, 3
     * Kelternplatz 4
     */
}

Code: Alles auswählen

void init_adjazenzmatrix_city (int a [N][N]) {
    /* Holzmarkt, 0
     * Judengasse, 1
     * Neckarbruecke, 2
     * Jakobuskirche, 3
     * Kelternplatz, 4
     */
/*
 *
(Holzmarkt, Judengasse, 350m)
(Holzmarkt, Neckarbrücke, 300m)
(Holzmarkt, Jakobuskirche, 500m)
(Holzmarkt, Kelternplatz, 600m)

(Judengasse, Neckarbrücke, 160m)
(Judengasse, Jakobuskirche, 160m)
(Judengasse, Kelternplatz, 350m)

(Neckarbrücke, Jakobuskirche, 800m)
(Neckarbrücke, Kelternplatz, 950m)

(Jakobuskirche, Kelternplatz, 220m)
*/

#define     HOLZMARKT       0
#define     JUDENGASSE      1
#define     NECKARBRUECKE   2
#define     JAKOBUSKIRCHE   3
#define     KELTERNPLATZ    4

a [HOLZMARKT][JUDENGASSE] = 300;
a [JUDENGASSE][HOLZMARKT] = 300;
a [HOLZMARKT][NECKARBRUECKE] = 300;
a [NECKARBRUECKE][HOLZMARKT] = 300;
a [HOLZMARKT][JAKOBUSKIRCHE] = 350;

a [HOLZMARKT][KELTERNPLATZ] = 600;
}

Es sind übrigens, nicht , sondern . Das ist auch logisch

Weil - sie haben ja -

Code: Alles auswählen

a, b, c, d, e, f, g
und das in Zeilen und spalten, dann sind es Und rechnen wir aus

Code: Alles auswählen

4*3*2*1 = 12*2 = 24
Ist weniger. Also könnte das stimmen

Code: Alles auswählen

// so jetzt habe ich das so gemacht, jetzt mache ich noch bei gleichen 0, rein

void init_adjazenzmatrix_city (int a [N][N]) {
    /* Holzmarkt, 0
     * Judengasse, 1
     * Neckarbruecke, 2
     * Jakobuskirche, 3
     * Kelternplatz, 4
     */
/*
 *
(Holzmarkt, Judengasse, 350m)
(Holzmarkt, Neckarbrücke, 300m)
(Holzmarkt, Jakobuskirche, 500m)
(Holzmarkt, Kelternplatz, 600m)

(Judengasse, Neckarbrücke, 160m)
(Judengasse, Jakobuskirche, 160m)
(Judengasse, Kelternplatz, 350m)

(Neckarbrücke, Jakobuskirche, 800m)
(Neckarbrücke, Kelternplatz, 950m)

(Jakobuskirche, Kelternplatz, 220m)
*/

#define     HOLZMARKT       0
#define     JUDENGASSE      1
#define     NECKARBRUECKE   2
#define     JAKOBUSKIRCHE   3
#define     KELTERNPLATZ    4

a [HOLZMARKT][JUDENGASSE] = 300;
a [JUDENGASSE][HOLZMARKT] = 300;
a [HOLZMARKT][NECKARBRUECKE] = 300;
a [NECKARBRUECKE][HOLZMARKT] = 300;
a [HOLZMARKT][JAKOBUSKIRCHE] = 350;
a [JAKOBUSKIRCHE][HOLZMARKT] = 350;
a [HOLZMARKT][KELTERNPLATZ] = 600;
a [KELTERNPLATZ][HOLZMARKT] = 600;
a [JUDENGASSE][NECKARBRUECKE] = 160;
a [NECKARBRUECKE][JUDENGASSE] = 160;
a [JUDENGASSE][JAKOBUSKIRCHE]  = 160;
a [JAKOBUSKIRCHE][JUDENGASSE]  = 160;
a [JUDENGASSE][KELTERNPLATZ] = 350;
a [KELTERNPLATZ][JUDENGASSE] = 350;
a [NECKARBRUECKE][JAKOBUSKIRCHE] = 800;
a [JAKOBUSKIRCHE][NECKARBRUECKE] = 800;
a [NECKARBRUECKE][KELTERNPLATZ] = 950;
a [KELTERNPLATZ][NECKARBRUECKE] = 950;
a [JAKOBUSKIRCHE][KELTERNPLATZ] = 220;
a [KELTERNPLATZ][JAKOBUSKIRCHE] = 220;
}

Code: Alles auswählen

void init_adjazenzmatrix_city (int a [N][N]) {
    /* Holzmarkt, 0
     * Judengasse, 1
     * Neckarbruecke, 2
     * Jakobuskirche, 3
     * Kelternplatz, 4
     */
/*
 *
(Holzmarkt, Judengasse, 350m)
(Holzmarkt, Neckarbrücke, 300m)
(Holzmarkt, Jakobuskirche, 500m)
(Holzmarkt, Kelternplatz, 600m)

(Judengasse, Neckarbrücke, 160m)
(Judengasse, Jakobuskirche, 160m)
(Judengasse, Kelternplatz, 350m)

(Neckarbrücke, Jakobuskirche, 800m)
(Neckarbrücke, Kelternplatz, 950m)

(Jakobuskirche, Kelternplatz, 220m)
*/

#define     HOLZMARKT       0
#define     JUDENGASSE      1
#define     NECKARBRUECKE   2
#define     JAKOBUSKIRCHE   3
#define     KELTERNPLATZ    4

a [HOLZMARKT][HOLZMARKT] = 0;
a [JUDENGASSE][JUDENGASSE] = 0;
a [JAKOBUSKIRCHE][JAKOBUSKIRCHE] = 0;
a [JUDENGASSE][JUDENGASSE] = 0;
a [NECKARBRUECKE][NECKARBRUECKE] = 0;

a [HOLZMARKT][JUDENGASSE] = 300;
a [JUDENGASSE][HOLZMARKT] = 300;
a [HOLZMARKT][NECKARBRUECKE] = 300;
a [NECKARBRUECKE][HOLZMARKT] = 300;
a [HOLZMARKT][JAKOBUSKIRCHE] = 350;
a [JAKOBUSKIRCHE][HOLZMARKT] = 350;
a [HOLZMARKT][KELTERNPLATZ] = 600;
a [KELTERNPLATZ][HOLZMARKT] = 600;
a [JUDENGASSE][NECKARBRUECKE] = 160;
a [NECKARBRUECKE][JUDENGASSE] = 160;
a [JUDENGASSE][JAKOBUSKIRCHE]  = 160;
a [JAKOBUSKIRCHE][JUDENGASSE]  = 160;
a [JUDENGASSE][KELTERNPLATZ] = 350;
a [KELTERNPLATZ][JUDENGASSE] = 350;
a [NECKARBRUECKE][JAKOBUSKIRCHE] = 800;
a [JAKOBUSKIRCHE][NECKARBRUECKE] = 800;
a [NECKARBRUECKE][KELTERNPLATZ] = 950;
a [KELTERNPLATZ][NECKARBRUECKE] = 950;
a [JAKOBUSKIRCHE][KELTERNPLATZ] = 220;
a [KELTERNPLATZ][JAKOBUSKIRCHE] = 220;
}
Jetzt ist das initialisiert

Und jetzt kommt das Rekursive

Code: Alles auswählen

int globalsum = 0;

void tue_city (int a [N][N], int i, int sum) {
    int j;

    if (i < N) {
        for (j = 0;  j < N;  j++) {
            if (is_on_stack ()) {
                sum = sum + a [i][j];
                push (i);
                tue_city (a, j, sum);
                pop ();
            }
        }
    }
    else {
        if ((globalsum == 0) || (sum < globalsum))
            globalsum = sum;
        return 0;
    }

}

Code: Alles auswählen

int globalsum = 0;

void tue_city (int a [N][N], int i, int sum) {
    int j;

    if (i < N) {
        for (j = 0;  j < N;  j++) {
            if (is_on_stack ()) {
                sum = sum + a [i][j];
                push (i);
                tue_city (a, j, sum);
                pop ();
            }
        }
    }
    else {
        if ((globalsum == 0) || (sum < globalsum))
            globalsum = sum;
        return 0;
    }

}

Code: Alles auswählen

// ich habe das Problem jetzt so gelöst

int globalsum = 0;

void tue_city (int a [N][N], int i, int sum) {
    int j;

    if (i < N) {
        for (j = 0;  j < N;  j++) {
            if (is_on_stack ()) {
                sum = sum + a [i][j];
                push (i);
                tue_city (a, j, sum);
                pop ();
            }
        }
    }
    else {
        if ((globalsum == 0) || (sum < globalsum))
            globalsum = sum;
        return 0;
    }

}

Code: Alles auswählen

push (int v) {
    stack_ptr--;
    stack [stack_ptr] = v;
}

int pop () {
    int v = stack [stack_ptr];
    stack_ptr++;
    return stack_ptr;
}

int is_on_stack (int v) {
    for (i = 1024;  i >= stack_ptr;  i--)
        if (stack [i] == v)
            return 1;
return 0;
}

void tue_city (int a [N][N], int i, int sum) {
    int j;

    push (i);
    if (i < N) {
        for (j = 0;  j < N;  j++) {
            if (!is_on_stack (j)) {
                sum = sum + a [i][j];
                tue_city (a, j, sum);
                pop ();
            }
        }
    }
    else {
        if ((globalsum == 0) || (sum < globalsum))
            globalsum = sum;
        return 0;
    }

}

Code: Alles auswählen

void tue_city (int a [N][N], int i, int sum) {
    int j;

    push (i);
    if (i < N) {
        for (j = 0;  j < N;  j++) {
            if (!is_on_stack (j)) {
                sum = sum + a [i][j];
                tue_city (a, j, sum);
                pop ();
            }
        }
    }
    else {
        if ((globalsum == 0) || (sum < globalsum))
            globalsum = sum;
        return 0;
    }

}

Code: Alles auswählen

int globalsum = 0;

int stack [1024];
int stack_ptr = 1024;

void push (int v) {
    stack_ptr--;
    stack [stack_ptr] = v;
}

int pop () {
    int v = stack [stack_ptr];
    stack_ptr++;
    return v;
}

int is_on_stack (int v) {
    int i;
    for (i = 1023;  i >= stack_ptr;  i--)
        if (stack [i] == v)
            return 1;
return 0;
}

char *tue_name [] = {"HOLZMARKT", "JUDENGASSE", "NECKARBRUECKE", "JAKOBUSKIRCHE", "KELTERNPLATZ"};

void print_stack () {
    int i;

    for (i = stack_ptr;  i < 1024;  i++)
        printf ("%s, ", tue_name[stack [i]]);
    printf ("\n");
}

void tue_city (int a [N][N], int i, int sum) {
    int j;

    push (i);
    if (i < N) {

        for (j = 0;  j < N;  j++) {
            if (!is_on_stack (j)) {
                sum = sum + a [i][j];
                tue_city (a, j, sum);
            }
        }
        pop ();
    }
    else {
        if ((globalsum == 0) || (sum < globalsum)) {
            globalsum = sum;
            print_stack ();
        }
    }
}

Code: Alles auswählen

// oK - da war ein gravierender Fehler drin, so ist es wahrscheinlich besser

void tue_city (int a [N][N], int i, int sum) {
    int j;

    push (i);
    for (j = 0;  j < N;  j++) {
        if (!is_on_stack (j)) {
                sum = sum + a [i][j];
                tue_city (a, a [i][j], sum);
        }
        pop ();
    }
    if ((globalsum == 0) || (sum < globalsum)) {
        globalsum = sum;
        print_stack ();
    }
}
Also, das war gravierend falsch

Nein, habe ich gerade falsch gesehen, war doch kein Fehler

Code: Alles auswählen

void tue_city (int a [N][N], int i, int sum) {
    int j;

    push (i);
    for (j = 0;  j < N;  j++) {
        if (!is_on_stack (j)) {
                sum = sum + a [i][j];
                tue_city (a, j, sum);
        }
        pop ();
    }
    if ((globalsum == 0) || (sum < globalsum)) {
        globalsum = sum;
        print_stack ();
    }

Code: Alles auswählen


// so ist besser

void tue_city (int a [N][N], int i, int sum) {
    int j;
    int flag = 0;

    push (i);
    for (j = 0;  j < N;  j++) {
        if (!is_on_stack (j)) {
                sum = sum + a [i][j];
                tue_city (a, j, sum);
        }
        else
            flag = 1;
    }

    print_stack ();
    printf ("%i\n", sum);
    pop ();
}

Code: Alles auswählen

david@laptop-peaq:~$ ./a.out
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
1480
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
1480
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
2430
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
2430
NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
2210
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2370
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2370
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2590
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2590
JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
1640
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2720
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2720
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2940
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2940
KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2140
JUDENGASSE, HOLZMARKT, 
970
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1140
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1140
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1490
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1490
JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1270
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2070
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2070
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2290
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2290
JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
1940
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3020
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3020
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3240
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3240
KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3080
NECKARBRUECKE, HOLZMARKT, 
2510
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2220
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2220
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2570
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2570
JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
1620
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
2420
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
2420
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
3370
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
3370
NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
3020
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
2640
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
2640
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
3590
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
3590
KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
3430
JAKOBUSKIRCHE, HOLZMARKT, 
2130
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
2860
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
2860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
3020
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
3020
JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
2220
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3170
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3170
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3970
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3970
NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3810
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
3390
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
3390
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
4190
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
4190
JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
4030
KELTERNPLATZ, HOLZMARKT, 
3070
HOLZMARKT, 
1550
david@laptop-peaq:~$

Code: Alles auswählen

# so, da ist noch ein Fehler drin

david@laptop-peaq:~$ ./a.out
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
1480
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
2430
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2370
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2590
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2720
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2940
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1140
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1490
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2070
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2290
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3020
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3240
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2220
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2570
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
2420
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
3370
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
2640
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
3590
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
2860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
3020
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3170
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3970
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
3390
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
4190
david@laptop-peaq:~$
Ich weiss, wo der Fehler ist, der Fehler liegt nicht in der Funktion selber, sondern es fängt immer mit Holzmarkt an - alle anderen Permutationen hat er gefunden, aber es fängt immer mit Holzmarkt an. Was im Stack hinten steht

Na, also, das hat er ausgegeben

Code: Alles auswählen

KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, 
980
Das ist der Kürzeste weg - nachweislich - Kelternplatz - Jakobuskirchen, Judengasse, Holzmarkt, Neckarbrücke

Code: Alles auswählen

KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
1480
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, 
2430
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2370
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, 
2590
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2720
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, 
2940
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1140
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, 
1490
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2070
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, 
2290
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3020
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, 
3240
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2220
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, 
2570
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
2420
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, 
3370
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
2640
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, 
3590
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
2860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, 
3020
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3170
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, 
3970
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
3390
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, 
4190
KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, JUDENGASSE, 
1620
JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JUDENGASSE, 
2570
KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, 
2700
NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, 
2920
JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE, 
3300
NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE, 
3520
KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, JUDENGASSE, 
1330
JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JUDENGASSE, 
1930
KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, 
2510
HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, 
2730
JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, 
3460
HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, 
3680
KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, 
2220
NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, 
2820
KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, 
2670
HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, 
3620
NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, 
2890
HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, 
3840
JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE, 
2670
NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE, 
3020
JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, 
3170
HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, 
3970
NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, 
3390
HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, 
4190
KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, 
980
JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, 
1330
KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, 
1460
JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, 
1680
JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, 
2060
JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, 
2280
KELTERNPLATZ, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, NECKARBRUECKE, 
1330
JAKOBUSKIRCHE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE, NECKARBRUECKE, 
1930
KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, 
1870
HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, 
2090
JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, 
2220
HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, 
2440
KELTERNPLATZ, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, 
2260
JUDENGASSE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, 
2860
KELTERNPLATZ, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, 
2670
HOLZMARKT, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, 
3020
JUDENGASSE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, 
2890
HOLZMARKT, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, NECKARBRUECKE, 
3240
JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, 
3270
JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, 
3620
JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, 
3810
HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, 
3970
JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, 
4030
HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, NECKARBRUECKE, 
4190
KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, 
1760
NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, 
2110
KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, 
1460
JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, 
2410
NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, 
2060
JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JAKOBUSKIRCHE, 
3010
KELTERNPLATZ, NECKARBRUECKE, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, 
2060
NECKARBRUECKE, KELTERNPLATZ, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, 
2660
KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, 
1870
HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, 
2820
NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, 
2220
HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JUDENGASSE, JAKOBUSKIRCHE, 
3170
KELTERNPLATZ, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, 
2260
JUDENGASSE, KELTERNPLATZ, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, 
2860
KELTERNPLATZ, HOLZMARKT, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, 
2670
HOLZMARKT, KELTERNPLATZ, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, 
3020
JUDENGASSE, HOLZMARKT, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, 
3620
HOLZMARKT, JUDENGASSE, KELTERNPLATZ, NECKARBRUECKE, JAKOBUSKIRCHE, 
3970
NECKARBRUECKE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, 
2590
JUDENGASSE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, JAKOBUSKIRCHE, 
2890
NECKARBRUECKE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, 
3080
HOLZMARKT, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, JAKOBUSKIRCHE, 
3240
JUDENGASSE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, 
4030
HOLZMARKT, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, JAKOBUSKIRCHE, 
4190
JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ, 
1860
NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, KELTERNPLATZ, 
2020
JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, 
1520
JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, KELTERNPLATZ, 
2320
NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, 
1870
JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, KELTERNPLATZ, 
2670
JAKOBUSKIRCHE, NECKARBRUECKE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ, 
2350
NECKARBRUECKE, JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, KELTERNPLATZ, 
2700
JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, 
2060
HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, JUDENGASSE, KELTERNPLATZ, 
2860
NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, 
2220
HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, JUDENGASSE, KELTERNPLATZ, 
3020
JAKOBUSKIRCHE, JUDENGASSE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, 
2660
JUDENGASSE, JAKOBUSKIRCHE, HOLZMARKT, NECKARBRUECKE, KELTERNPLATZ, 
3010
JAKOBUSKIRCHE, HOLZMARKT, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, 
3010
HOLZMARKT, JAKOBUSKIRCHE, JUDENGASSE, NECKARBRUECKE, KELTERNPLATZ, 
3170
JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, 
3810
HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, NECKARBRUECKE, KELTERNPLATZ, 
3970
NECKARBRUECKE, JUDENGASSE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, 
2930
JUDENGASSE, NECKARBRUECKE, HOLZMARKT, JAKOBUSKIRCHE, KELTERNPLATZ, 
3230
NECKARBRUECKE, HOLZMARKT, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, 
3230
HOLZMARKT, NECKARBRUECKE, JUDENGASSE, JAKOBUSKIRCHE, KELTERNPLATZ, 
3390
JUDENGASSE, HOLZMARKT, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, 
4030
HOLZMARKT, JUDENGASSE, NECKARBRUECKE, JAKOBUSKIRCHE, KELTERNPLATZ, 
4190
Ist ein rechenfehler drin, aber er hat den kürzesten weg gefunden.
Antworten