Programmieren – die besten Beiträge

Java - Distanzmatrix Algorithmus, Wie ansetzen?

Hallo, ich bin gerade dabei ein Graphenprogramm zu schreiben und stecke bisschen bei der Distanzmatrix.

Ich weiß nicht ob sich jemand bei Graphentheorie auskennt oder nicht aber der Algorithmus für die Distanzmatrix ist relativ einfach. Nur das umsetzen in Code fällt mir sehr schwer und deswegen hoffe ich, dass ihr mir vielleicht dabei helfen könnt..

Der Algorithmus für eine Distanzmatrix lautet so:

Man hat eine Eingangsmatrix (Adjazentmatrix).
Die könnte so aussehen:

Man markiert sich alle Nuller die in der Adjazentmatrix vorkommen (AUßER DIE HAUPTDIAGONALE, DIE BLEIBT UNBERÜHRT).

Dann erstellt man sich eine eigene Matrix die man "DistanzMatrix" nennen kann und setzt alle Nuller die eben in der Adjazentmatrix vorkommen auf "Unendlich" oder auch auf INTEGER.MAX_VALUE in der Programmiersprache .

Das schaut dann so aus:

Also haben wir jetzt 2 Matrizen. Bis dahin habe ich es auch geschafft in meinem Programm. Die Ausgabe schaut bei mir so aus:

Die "-9" sind alle Nuller, die auf UNENDLICH gesetzt sind (siehe zweites Bild).

Der nächste Schritt ist es die Potenzen der Eingangsmatrix (Adjazentmatrix) zu berechnen. Das habe ich ebenfalls schon geschafft im Code.

Das heißt, die Adjazentmatrix (siehe Bild 1) wurde potenziert und so könnte das Ergebnis der Potenzberechnug aussehen.

Man schaut sich jetzt alle Nuller (außer die Hauptdiagonale von der Eingangsmatrix an (siehe Bild 1)) und markiert sich nur die Zahlen (rot), die sich von der Potenzierung der Eingangsmatrix verändert haben. (Außer die Nuller (=Neue Nuller die durch die Potenzierung entstanden sind bleiben auch weiterhin eine Null))

Und der letzte Schritt ist es jetzt, die von mir erstellte DistanzMatrix upzudaten, indem ich im ersten Schritt alle rote Zahlen von A²(G) in 2 umwandle. Alle Nuller die übrig bleiben, werden wieder in UNENDLICH umgewandelt.

Und das wird jetzt so oft wiederholt, bis es keine UNENDLICH Zeichen mehr in der Distanzmatrix gibt. Und aus UNENDLICH wird 3. Und immer so weiter.. Falls es zb nach der fünften Potenzierung immer noch Nuller bzw UNENDLICH Werte gibt dann wird aus UNENDLICH 5.

Somit ist D³(G) das Ergebnis.

Ich hoffe ich konnte es ausführlich genug erklären

Danke

Bild zum Beitrag
Computer, Schule, Technik, programmieren, Java, Informatik, Technologie, Algorithmus, Graphentheorie

Java Array ober und Untergrenze?

Hallo,

Ich Versuche seit mehreren Stunden mir eine Array Auszugeben wo ich eine Ober und untergrenze definiert hab aber ich bekomme es nicht hin ergo. ich bite um Hilfe.

Die Array:

zf = new int[11];
zf[1] = 1;
zf[2] = 2;
zf[3] = 3;
zf[4] = 10;
zf[5] = 9;
zf[6] = 8;
zf[7] = 7;
zf[8] = 6;
zf[9] = 5;
zf[10] = 4;

Sortierung:

    private void sortierungsbegrenzung( int a[], int untergrenze, int obergrenze)
    {
         int i, j, n = (obergrenze-untergrenze)-1;  
         int x;
        for ( i = (untergrenze+2); i <= n; i++ )      
        {    
            boolean getauscht = false;
            for (j = n; j >= i; j-- )           
            {                
                if ( a[j-1] > a[j] )           
                {
                    tauschen(zf, j, 1);
                    getauscht = true;
                }
            } /*end for*/
            if (!getauscht)
            {
                break;
            }
            zfAusgeben(zf);
        } /*end for*/
    }

tauschen:

    private void tauschen(int b[], int k, int t)
    {               
        int x;
        x = b[k-t];
        b[k-t] = b[k];
        b[k] = x;
    }

zfAusgabe:

    private void zfAusgeben(int[] a)
    {
        for (int i=1; i<a.length; i++)
        {
            System.out.print( a[i] + "\t");
        }
        System.out.println();
    }

ich finde den Fehler nicht

MfG

Computer, programmieren, Java, Informatik

We herausfinden, wann eine Festplatte zuletzt benutzt wurde?

Hallo. Mir ist Privatsphäre sehr wichtig und auch gegenüber Menschen wie meiner Freundin, Freunden, Familie etc. Meine Freundin hatte kürzlich mal mein Handy durchgecheckt. Daraufhin hatten wir gestritten, weil das für mich ein NoGo ist.

Sie hatte mir versichert, das nicht mehr zu machen. Auch keine Briefe zu öffnen, E-Mails von mir zu lesen, etc.

Jetzt möchte ich das auf die Probe stellen. Ich habe eine 4 TB Festplatte wo ich alle Daten habe, die ich je seit meiner Kindheit gespeichert habe. Ich würde sagen, dass demjenigen, dem die in die Hände fällt, alles über mich weiß. Wo ich gearbeitet habe, Dinge über ehemalige Beziehungen etc, Familie, Bankdaten etc.

Das habe ich meiner Freundin auch gesagt. Nun habe ich mir eine identische Festplatte gekauft. Ich überlege mir, wie ich es hinbekomme, um zu sehen, wann sie zuletzt eingesteckt wurde.

Ich hätte nur die Idee, dass ich eine gleiche Ordnerstruktur erstelle und ein paar Daten, die sie sehen darf und mit C# ein kleines Programm programmiere, das beim Öffnen in irgendeinen Ordner auf der Festplatte ein paar leere Dateien erstellt. So, dass sobald ich sie einstecke und diese leeren Dateien auf der Festplatte finde, weiß, dass irgendjemand sie in meiner Abwesenheit eingesteckt hat. Dieses Programm würde ich ein übliches Ordnersymbol geben und "Fotos von Ex.exe" nennen. (Meine Freundin hat auf ihrem Laptop nicht eingestellt, dass sie Dateiendungen sehen kann)

Falls sie aber die Falle erkennt und nicht darauf klickt, wie kann ich sonst wissen, wann die Festplatte zuletzt genutzt wurde?

Computer, IT, Festplatte, programmieren, Informatik, IT-Sicherheit, misstrauen, Toxische Menschen

Meistgelesene Beiträge zum Thema Programmieren