Frage zu Adjazenzmatrix in eindimensionalen Array

  • Hi Leute,

    hab hier eine Aufgabe zu ner Adjazenzmatrix, die ich irgendwie nicht ganz versteh..
    Also folgende Matrix ist gegeben:
    0 1 0 1 1 0 0
    1 0 0 1 0 0 0
    0 0 0 1 0 0 1
    1 1 1 0 0 1 1
    1 0 0 0 0 1 0
    0 0 0 1 1 0 0
    0 0 1 1 0 0 0

    a. Zeichnen Sie den durch die Adjazenzmatrix A gegebenen Graphen.. -> kein Problem, ist easy..
    b. Geben Sie die Adjazenzlisten für den durch die Matrix A bestimmten Graphen an. -> auch kein Problem
    c. Der durch die Matrix A bestimmte Graph ist schon durch die untere (bzw. obere) Dreiecksmatrix der Matrix A eindeutig bestimmt. Das untere Dreieck von A kann man zeilenweise in einem eindimensionalen Feld F speichern. Geben Sie eine Formel an, die die Position eines Elementes a(ij), i<j, der Matrix A in einem eindimensionalen Feld F bestimmt. -> das raff ich nicht so ganz

    wahrscheinlich ist c sogar am leichtestens (gibt auch die wenigstens punkte), aber irgendwie kappier ichs net so ganz..
    erst wußte ich gar nicht was ne dreiecksmatrix ist (stand nix dazu in meinen unterlagen), hab dann aber gegoogelt und weiß jetzt das es ne obere und ne untere gibt und was sie zu bedeuten haben.. aber das mit der formel kappier ich nicht so ganz..
    die untere dreiecksmatrix ist ja dann das:
    0
    1 0
    0 0 0
    1 1 1 0
    1 0 0 0 0
    0 0 0 1 1 0
    0 0 1 1 0 0 0
    und als eindimensionales feld sieht es so aus:
    0100001110100000001100011000 richtig?
    wie ist das jetzt mit der formel gemeint?

    kann mir da mal jemand nen tipp geben?

    mfg,
    neo

  • Schau dir mal an, an welchen Indizes welche Elemente stehen:

    Code
    0: a(0,0)
    ---------
    1: a(1,0)
    2: a(1,1)
    ---------
    3: a(2,0)
    4: a(2,1)
    5: a(2,2)
    ---------
    6: a(3,0)


    etc. Gesucht ist jetzt eine Formel, die dir zwischen der eindimensionalen und zweidimensionalen Indizierung konvertiert, also z.B. 3 auf (2,0) abbildet und umgekehrt. An der wievielten Stelle in der Liste steht zum Beispiel ein Paar (i,0)?

    *plantsch*

  • danke, hab jetzt schon etwas mehr verstanden..
    aber irgendwie komm ich noch nicht auf die formel.. vielleicht denk ich auch einfach zu kompliziert.. was mich zum beispiel ach irritiert ist das i<j in der aufgabenstellung.. steh da irgendwie auf dem schlauch

  • aber irgendwie komm ich noch nicht auf die formel..


    Wieviele Elemente stehen denn in der Liste vor (0,0)? Wieviele vor (1,0)? Vor (2,0) etc.? Es hat schon einen Grund gehabt, daß ich das in meinem vorigen Post so mit Strichen zwischen den einzelnen Blöcken aufgeschrieben hab :)

    Zitat

    was mich zum beispiel ach irritiert ist das i<j in der aufgabenstellung


    Das ist berechtigt. Ich denk, da war i <= j gemeint.

    *plantsch*

  • hi plantsch,

    danke für deine hilfe.. ich glaub ich habs kappiert, hab nur vergessen hier noch zu posten..
    die formel müsste dann nach meinem verständnis so lauten: (i(i+1)/2) + j
    bei ein paar kontrollrechnungen ist auf jedenfall immer das richtige rausgekommen :)

  • hi plantsch,

    danke für deine hilfe.. ich glaub ich habs kappiert, hab nur vergessen hier noch zu posten..
    die formel müsste dann nach meinem verständnis so lauten: (i(i+1)/2) + j
    bei ein paar kontrollrechnungen ist auf jedenfall immer das richtige rausgekommen :)



    ich stehe vor der gleichen Aufgabe, allerdings kann ich die Formel nicht nachvollziehen.
    Die Werte eingesetzt kommt nicht die Position im eindimensionalen feld raus?!

    Auch wenn die Frage schon ein bißchen älter ist, vielleicht kann sich ja nochmal einer mit befassen :o

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!