Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   eine fast bijektive Abbildung von R^2 nach R (https://www.delphipraxis.net/176006-eine-fast-bijektive-abbildung-von-r%5E2-nach-r.html)

Aphton 6. Aug 2013 11:16

eine fast bijektive Abbildung von R^2 nach R
 
Hallo,
Ich überlege grad, ob ich jedem Punkt in R^2 eine eindeutige Zahl zuordnen kann. Möglich ist es, wenn eine Dimension (Breite) bekannt ist:
breite*y + x.
Für ganz R wäre die Breite jedoch unendlich. Damit gehts nicht.

Mir ist klar, dass es keine bijektive Abbildung von R^2 nach R geben könnte, da R^2 "viel mehr" umfasst als R und dadurch sich Werte früher oder später wiederholen werden.

Hintergrund:
Ich möchte zum RandomSeed Positionsdaten reinverarbeiten. Diese müssten für jedes (X,Y) Tupel (fast) eindeutig sein, damit dann später keine Wiederholungen auftreten.

Mein erster Gedanke war, einfach eine Hashfunktion zu verwenden. Hat vlt. jemand etwas besseres parat?

Meflin 6. Aug 2013 11:26

AW: eine fast bijektive Abbildung von R^2 nach R
 
Nur mal so am Rande: es gibt eine bijektive Abbildung zwischen R und R2, siehe http://www.matheboard.de/archive/5299/thread.html (Antwort 2)

Klaus01 6. Aug 2013 11:31

AW: eine fast bijektive Abbildung von R^2 nach R
 
wenn man sich auf positive Zahlen beschränkt

4 = 2 x 2
4 = (-2) x (-2)

siehe auch: http://de.wikipedia.org/wiki/Bijektive_Funktion

Grüße
Klaus

Der schöne Günther 6. Aug 2013 11:32

AW: eine fast bijektive Abbildung von R^2 nach R
 
Ich hätte nie gedacht dass mich Mengenlehre zum Lachen bringen kann, aber die Idee mit der Abbildung auf R^1 ist nicht übel :-D

Aphton 6. Aug 2013 11:48

AW: eine fast bijektive Abbildung von R^2 nach R
 
Zitat:

Zitat von Meflin (Beitrag 1223677)
Nur mal so am Rande: es gibt eine bijektive Abbildung zwischen R und R2, siehe http://www.matheboard.de/archive/5299/thread.html (Antwort 2)

Interessant, danke werde mir das mal genauer anschauen

gammatester 6. Aug 2013 11:49

AW: eine fast bijektive Abbildung von R^2 nach R
 
Zitat:

Zitat von Aphton (Beitrag 1223675)
Hintergrund:
Ich möchte zum RandomSeed Positionsdaten reinverarbeiten. Diese müssten für jedes (X,Y) Tupel (fast) eindeutig sein, damit dann später keine Wiederholungen auftreten.

Jedenfalls gibt es keine bijektive Abbildung von R^2 nach R wenn R eine endliche Menge ist. Für Dein Problem kommt es auf zB die Wertebereich an: wenn Deine Randseeds 32-Bit sind kannst Du sie bijektiv-trivial auf 64-Bit abbilden.

Wenn das nicht geht und Du (gute) Hashfunktionen verwendest, wirst Du wg. des Geburtstagsparadoxons eine Kollisionswahrscheinlich von ca 1/Wurzel(2^(Anzahl Bits der Hashfunktion)) haben. Du must halt abschätzen, ob Dir das reicht.

BUG 6. Aug 2013 12:09

AW: eine fast bijektive Abbildung von R^2 nach R
 
Zitat:

Zitat von Aphton (Beitrag 1223675)
Mein erster Gedanke war, einfach eine Hashfunktion zu verwenden. Hat vlt. jemand etwas besseres parat?

Nimm die Hashfunktion.
Zwar sind R^2 und R beide gleich mächtig (dh. bijektive Abbildungen sind möglich), die Abbildungen dazwischen sollten aber mit Gleitkommazahlen für einigen Informationsverlust sorgen oder sind unnötig kompliziert.

Wenn du noch andere Daten in den Seed einfließen lässt, benutzt du ja wahrscheinlich eh schon eine Hashfunktion.
Ansonsten: Wenn du genauere Angaben zu dem Positionen und der Größe des Seeds hast, könnte man gucken, ob eventuell nicht doch alle Informationen hineinpassen.

Aphton 6. Aug 2013 12:20

AW: eine fast bijektive Abbildung von R^2 nach R
 
Ja momentan tendiere ich eig. zur Hashfunktion..
Ich verwende den Delphieigenen Zufallszahlengenerator (RandSeed = 32 Bit Integer)
Positionsdaten bestehen aus 2 32 Bit Integers

Edit: Blödsinn.. Die Positionsdaten können auch kleiner sein.. Ich könnte zwei Words verwenden und diese zusammenbitshiften

Edit2: Ok, es klappt. Das Muster wiederholt sich kaum.
Nun kann ich riesengroße Landschaften chunkweise - dann, wann gebraucht wird - generieren!


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz