Wouzhuo: [Mathe/Informatik] Habe Fragen zu Algorithmen

Beitrag lesen

Hi,

Ein Beispiel:
Wertebereich: 0-10
Zielbereich: 200-300
Abbildungsfunktion f(x):= x*10+200
Damit kannst du jede Zahl x eindeutig abbilden.
Die Umkehrfunktion wäre dann:
f⁻¹(x) := (x-200)/10
Damit kommst du wieder auf die ursprüngliche Zahl.

Ah, ich habe etwas wichtiges vergessen (was ich ausversehen einfach so vorausgesetzt habe): das ganze soll möglichst "zufällig" sein. Soll heißen, wenn ich die ersten 5 Zahlen abgebildet habe, dann soll jemand, der die Funktion nicht kennt, nicht (oder nicht ohne weiteres) voraussagen können, auf welche Zahl die 6 abgebildet wird.

Es gibt aber beliebig viele Abbildungsfunktionen, die du verwenden könntest.

Wie gelingt es mir eine solche Funktion zu schreiben? Was ist, wenn ich z.B. _nicht_ möchte, dass aus der neuen Zahl auf die alte geschlossen werden kann?

Das hört sich nach hashing an. Dabei kannst du beliebig große Mengen auf eine kleine abbilden.
Ein sehr einfaches Beispiel wäre die Quersumme:
Die Zahlen 13,22,31 haben alle die Quersumme 4. Also kannst du von der 4 nicht mehr auf die ursprüngliche Zahl schließen.

Soetwas geht als _ausschließlich_ unter Informationsverlust oder? Wobei, was ist mit unendlichen Reihen? Angenommen ich möchte eine x-beliebige natürrliche Zahl (sagen wir 42) auf eine andere x-beliebige Zahl (sagen wir 23) abbilden. Kann man eine Funktion dafür schreiben, die _nicht_ "reversibel" ist, _obwohl_ es sozusagen für jede Zahl auch nur eine feste neue Zahl gibt?

Was ist, wenn ich möchte, dass die erste Funktion f eine Zahl erhält, mit dieser Zahl etwas macht, sodass ich entweder Zahl X _oder_ Zahl Y erhalte (Zufall), dass man aber nur durch X wieder auf die ursprüngliche Zahl kommt (mit einer anderen Funktion), nicht aber durch Y.

Du könntest einfach 2 Zahlen erzeugen und dann mit einem Zufallsgenerator entscheiden welche der beiden du verwendest.

Hm, ich muss erstmal nach darüber nachdenken.

Dafür würde mir aber kein praktischer Anwendungsfall einfallen. Vor allem weiß du ja dann am Schluss auch nicht, ob du dann X oder Y als Ergebnis erhalten hast.

Ja, das wäre dann unklar. Es ging mir mehr ums akademische, nicht um einen praktischen Nutzen. Ich will nur wissen, wie man solche Algorithmen entwirft.

Grüße.