Kodierungstheorie - Paar eindeutig Kodieren

Hallo!

Ich suche eine Formel, um ein Tupel von 2 natürlichen Zahlen eineindeutig und reversibel einer natürlichen Zahl zuzuordnen.

Ich will für jedes Feld einer beliebig großen Matrix einen Schlüssel errechnen, mit dem ich wiederum auf die Zeile und die Spalte Rückschlüsse ziehen kann.

Ich weiß, dass es da mindestens eine Formel gibt, mein Matheprof konnte sie mir leider nicht aus dem Kopf sagen…

Hallo Julian,

Ich suche eine Formel, um ein Tupel von 2 natürlichen Zahlen
eineindeutig und reversibel einer natürlichen Zahl zuzuordnen.

Ich will für jedes Feld einer beliebig großen Matrix einen
Schlüssel errechnen, mit dem ich wiederum auf die Zeile und
die Spalte Rückschlüsse ziehen kann.

ich weiss nicht ob das jetzt für Dein konkretes Problem geeignet ist, aber das gewünschte (bijektive Abbildung NxN->N) leistet die Cantorsche Paarungsfunktion; siehe z.B. http://de.wikipedia.org/wiki/Cantorsche_Paarungsfunk… .

Viele Grüße
Sebastian

Hallo,

da geht es einfach ums Abzählen - wenn die Grösse bekannt ist, ist das trivial, jeder Compiler ordnet die Matrix (array) linear im Speicher an. Ansonsten gibt es sicher unendlich viele Möglichkeiten, eine übersichtliche ist folgende Anordnung:

20 

14 19 

09 13 18 

05 08 12 17 

02 04 07 11 16 

00 01 03 06 10 15 

Gruss Reinhard

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Julian,

ich weiss nicht ob das jetzt für Dein konkretes Problem
geeignet ist, aber das gewünschte (bijektive Abbildung
NxN->N) leistet die Cantorsche Paarungsfunktion; siehe z.B.
http://de.wikipedia.org/wiki/Cantorsche_Paarungsfunk… .

Viele Grüße
Sebastian

genau das habe ich gesucht - ein diplom-mathematiker konnte es mir nicht sagen (ihm ist wohl der name der formel entfallen), dafür aber ein mitstudent heute nachmittag…vielen dank!

so, obwohl ich eigentlich schon längst im bettchen liegen wollte, habe ich dazu eine PHP-klasse geschrieben:

http://www.selfphp.de/forum/showthread.php?t=12408