Discussion:
Korrekte mathematische Schreibweise?
(zu alt für eine Antwort)
Brigitta
2018-04-02 09:10:01 UTC
Permalink
Hallo,

beim Programmieren eines Permutations-Algorithmus bin ich auf folgende
Frage gestoßen:
Wenn ich allen Buchstaben des Alphabets eine eindeutige Nummer zuordne,
wie formuliere ich das korrekt mathematisch als Abbildung (Funktion).
Mir ist klar, dass die Menge der Buchstaben damit eindeutig (bijektiv)
auf eine Teilmenge der natürlichen Zahlen abgebildet wird.
Wenn ich den Ascii-Zeichensatz betrachte, kann ich schreiben

chr(n) -> n (Buchstabe mit der Ascii-Nr. n wird der Zahl n zugeordnet)

Wie kann ich diese Zuordnung mathematisch sauber aufschreiben?
In den modernen Mathe-Büchern wird eine Funktion meist in der Notation

f: A -> B
x -> f(x)

formuliert.
Auf die Alphabet-Nummerierung angewandt - könte man das in etwa so
schreiben?

Sei A die Menge der Buchstaben des Alphabets. A wird auf eine
Teilmenge B der natürlichen Zahlen abgebildet.

f: A -> B, mit B e N (oder muss man hier schreiben A -> N ?)
x=chr(n) -> f(x) = n

Oder wie würde man das mathematisch sauber-korrekt ausdrücken?

Danke und viele Grüße
Brigitta
H0Iger SchuIz
2018-04-02 11:26:23 UTC
Permalink
Post by Brigitta
f: A -> B, mit B e N (oder muss man hier schreiben A -> N ?)
x=chr(n) -> f(x) = n
$B$ soll wohl eine Teilmenge der Menge der natürlichen Zahlen sein, also
$B \subseteq \mathbb{N}$. Den Bezeichner $x$ braucht's eigentlich nicht:

$f:A \rightarrow B, chr(n) \mapsto n$.

Damit $g$ wirklich bijetiv ist, muss man sich überlegen, was $B$ konkret
sein soll. Dazu muss aber auch klar sein, was du unter einem
"Buchstaben" verstehen möchtest. Du musst als $A$ mal konkret angeben.

Die Definition von $f$ setzt übrigens voraus, dass es die Funktion chr
schon gibt. Also ist $f$ eigentlich nur die Umkehrfunktion von chr.


hs
Stefan Ram
2018-04-03 09:19:55 UTC
Permalink
Post by Brigitta
Wenn ich allen Buchstaben des Alphabets eine eindeutige Nummer zuordne,
wie formuliere ich das korrekt mathematisch als Abbildung (Funktion).
Die mathematische Notation ist weniger formalisiert als
die einer Programmiersprache. Die natürliche Sprache ist
ein wichtiger Teil mathematischer Texte.

Man kann beispielsweise sagen:

Sei M die Menge aller Buchstaben des Alphabets.¹

Sei f: M --> N diejenige Abbildung, welche jedem
Buchstaben aus M seinen Unicode zuordnet.
Post by Brigitta
f: A -> B, mit B e N (oder muss man hier schreiben A -> N ?)
x=chr(n) -> f(x) = n
Oder wie würde man das mathematisch sauber-korrekt ausdrücken?
Es gäbe erstens natürlich die Möglichkeit statt "chr" gleich
"ord"/"asc" zu benutzen (die bekannten Umkehrfunktionen).

Dann gäbe es die Möglichkeit, mit dem iota-Symbol "ι":

Wenn p ein Prädikat ist, dann ist ιx:px, das x für das px.

Damit kann man schreiben:

f(x): ιn:chr(n)=x

. Jedoch ist diese Termschreibweise /nicht/ "sauberer" oder
"korrekter" (beides sind keine mathematischen Begriffe) als
die natürlichsprachige Bestimmung von »f«. Man muß zeigen,
daß »n« durch »chr(n)=x« eindeutig bestimmt ist, wenn »x«
aus dem Definitionsbereicht von »f« stammt, was hier aber
einfach² ist.

¹) Ist eigentlich keine Menge, da nicht hinreichend bestimmt
(welches Alphabet ist genau gemeint?).

²) Tatsächlich stimmt es nicht, da es im Unicode für einen
Buchstaben, wie beispielsweise "n", verschiedene Code-Punkte,
wie beispielsweise "n", "𝐧", "𝑛", "𝒏", "𝓃", "𝓷", "𝔫", "𝕟",
"𝖓", "𝗇", "𝗻", "𝘯", "𝙣", "𝚗", u.s.w. gibt.
Stefan Ram
2018-04-03 09:44:56 UTC
Permalink
Post by Stefan Ram
¹) Ist eigentlich keine Menge, da nicht hinreichend bestimmt
(welches Alphabet ist genau gemeint?).
Tatsächlich krankt dies daran, daß "Buchstaben" und
"Alphabete" nicht a priori mathematische Objekte (Mengen)
sind.

Mann kann sie aber mathematisch modellieren.

Dazu betrachte man die 26 Paare

(1,0), (1,1), (1,2), ..., (1,25)

. Man kann nun für sie jeweils Trivialbezeichnungen

"a", "b", "c", ..., "z"

einführen, die aber kein Teil des Modells sind.

Damit repräsentieren sie die 26 Buchstaben des Alphabetes.

Sei B die Menge dieser 26 Paare und A die Menge der ersten
26 natürlichen Zahlen.

Dann bildet

f: B --> A
(1,n) :--> n

jeden "Buchstaben" auf eine Zahl ab, mit der Umkehrfunktion

g: A --> B
n :--> (1,n)

. Alternativ könnte man Buchstaben auch axiomatisch als
mathematische Urobjekte einführen.
Carlo XYZ
2018-04-03 18:39:27 UTC
Permalink
Post by Brigitta
beim Programmieren eines Permutations-Algorithmus bin ich auf folgende
Wenn ich allen Buchstaben des Alphabets eine eindeutige Nummer zuordne,
wie formuliere ich das korrekt mathematisch als Abbildung (Funktion).
Mir ist klar, dass die Menge der Buchstaben damit eindeutig (bijektiv)
auf eine Teilmenge der natürlichen Zahlen abgebildet wird.
Wenn ich den Ascii-Zeichensatz betrachte, kann ich schreiben
chr(n) -> n (Buchstabe mit der Ascii-Nr. n wird der Zahl n zugeordnet)
Wie kann ich diese Zuordnung mathematisch sauber aufschreiben?
Dein Problem ist mir etwas unklar.

Nehmen wir mal nur die Menge der ersten drei Kleinbuchstaben: {a,b,c}.

Willst du die genau auf die Menge ihrer ASCII-Dezimalcodes abbilden,
also {97,98,99}? Oder genügt dir eine beliebige dreielementige Menge
von Zahlen, sagen wir {1,2,3} oder {11,13,17}?

Im ersten Fall würde ich schreiben:

f: {a,b,c} -> N
x |-> asc-dez(x)

wobei definiert sein muss: asc-dez(a):=97,asc-dez(b):=98,asc-dez(c):=99

oder

f: {a,b,c} -> N
a |-> 97, b |-> 98, c |-> 99

Im letzten Fall z.B.

f: {a,b,c} -> N
a |-> 11, b|-> 13, c |-> 17

Dabei ist |-> das TeX-Zeichen \mapsto, zu erkennen auf Seite 4 von

<https://rpi.edu/dept/arc/training/latex/LaTeX_symbols.pdf>

Wenn du offen lassen willst, auf welche 3-elementige Zahlenmenge
du deine drei Buchstaben abbildest, würde ich vorschlagen:

Sei f: {a,b,c} -> N eine beliebige injektive Funktion.

Dann kannst du dein B als f({a,b,c}) definieren, und die
Injektivität garantiert, dass B genau 3 Elemente hat.
Brigitta
2018-04-03 22:12:24 UTC
Permalink
Ganz herzlichen Dank für Eure Hilfe.
Mir ist durch die Antworten klar geworden, dass ich wesentlich exakter
formulieren muss.
Die Formulierungsbeispiele habe ich dank der Erklärung verstanden.
Nochmals vielen Dank für Eure Mühe

Grüße
Brigitta
Carlo XYZ
2018-04-04 09:00:01 UTC
Permalink
Post by Brigitta
Die Formulierungsbeispiele habe ich dank der Erklärung verstanden.
Um zu ergänzen, dass nach \mapsto auch Formeln stehen können:

Fall du eine Funktion zur Verfügung hast, die die Reihenfolge
der Buchstaben explizit angibt (z.B.: index(a)=1, index(b)=2,
index(c)=3), dann kannst du

f: {a,b,c} -> N
a |-> 97, b |-> 98, c |-> 99

auch so schreiben:

f: {a,b,c} -> N
x |-> 97 + (index(x) - 1)

oder so

f: {a,b,c} -> N
x |-> 96 + index(x)

oder sogar so (der Spielerei sind kaum Grenzen gesetzt):

f: {a,b,c} -> {97,98,99}
x |-> 96 + index(x)

was wenig Information bringt, dafür aber mehr Ärger:
Du müsstest dazu noch nachweisen, dass deine Formel
nur Werte innerhalb der angegebenen Menge produziert.

Deswegen als Daumenregel (d.h., eine Regel, die nicht
immer gilt): Die Bildmenge B bei einer Angabe f:A->B
so einfach wie möglich halten; die genaue Bildmenge
f(A)\subseteq B kann man später untersuchen.
Brigitta
2018-04-04 10:58:25 UTC
Permalink
...
Hallo Carlo,

das war extrem hilfreich für mich. Ich hätte ohne Deine Hilfe und die
von Holger einiges falsch formuliert. Vielen Dank!
(So ist mir die Dokumentation meines Permutations-Algorithmus glaub ich ganz gut gelungen. Er ist - wie so manches im Leben - elegant aber halt langsam :-)) ...

Danke nochmals und viele Grüße
Brigitta

Lesen Sie weiter auf narkive:
Loading...