2D Koordinaten in 1D darstellen -> Was ist das mathematisch gesehen?
-
Angenommen ich habe ein 2 dimensionales Array das irgendeinen Typ speichert. Den kann ich dann in etwa so (C++ Syntax) addressieren:
typ = array[x][y];;
Das gleiche kann ich aber auch in einem 1-dimensionalen Array unterbringen, den ich dann folgendermassen addressiere:
typ = array[zeilenlänge * y + x];
Wie lässt sich diese Art der "Transformation" mathematisch herleiten? Lässt sich so auch eine allgemeine Gleichung aufstellen, die R^n auf R^n-1 auf diese Weise abbildet?
-
Du schneidest deine 2D-Fläche in Streifen und klebst diese hintereinander:
AAAAAAAAAAA BBBBBBBBBBB CCCCCCCCCCC -> AAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCC
Das lässt sich rekursiv auf beliebigdimensionale und beliebig geformte, endliche Ansammlungen von diskreten Punkten verallgemeinern.
edit: Vergessen zu erwähnen, dass eine wichtige Voraussetzung die Endlichkeit des Gebildes ist.
-
Das lässt sich beschreiben durch eine Funktion f(z), die z wieder in die Komponenten x und y aufteilt: f(z) = (z / y_max, y % y_max).
Es lässt sich nicht in diesem Sinne sinnvoll erweitern auf N^n oder gar R^n. Denn wenn du unendlich viele verschiedene y-Werte hast, wirst du niemals den zweiten x-Wert erreichen, wenn du so durchzählst wie gehabt. Man kann allerdings anders durchzählen. Schau dir z. B. den Beweis von der Abzählbarkeit der rationalen Zahlen oder Peano-Kurven an.
-
SeppJ schrieb:
edit: Vergessen zu erwähnen, dass eine wichtige Voraussetzung die Endlichkeit des Gebildes ist.
Wenn man schon die physikalischen Begrenzungen des Rechners ausser Acht lässt: Es darf maximal eine Dimension unendlich sein. Je nach Bezeichnung ist dies die erste oder die letzte. Das Gebilde wäre damit unendlich gross und deine Behauptung unendlich falsch
-
Einwand schrieb:
SeppJ schrieb:
edit: Vergessen zu erwähnen, dass eine wichtige Voraussetzung die Endlichkeit des Gebildes ist.
Wenn man schon die physikalischen Begrenzungen des Rechners ausser Acht lässt: Es darf maximal eine Dimension unendlich sein. Je nach Bezeichnung ist dies die erste oder die letzte. Das Gebilde wäre damit unendlich gross und deine Behauptung unendlich falsch
Wenn du schon die physikalischen Begrenzungen außer Acht lässt, lassen sich unendlich viele Ganze Zahlen auf eine Dimension abbilden (Wenn auch vermutlich nicht effizient).
Stell dir vor, du hast 3 Indizes: 1234567890, 4265390475046 und 25505
Zuerst escapst du alle Nullen mit 00: Deine Indizes lauten 12345678900, 426539004750046 und 255005
Und jetzt hängst du sie alle aneinander und fügst 01 zwischendrin ein:
123456789000142653900475004601255005Bitteschön! Hier hast du deinen eindeutigen Index, der sich wieder den drei Dimensionen zuordnen lässt.