background preloader

Grundlagen

Facebook Twitter

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) By Joel Spolsky Wednesday, October 08, 2003 Ever wonder about that mysterious Content-Type tag?

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)

You know, the one you're supposed to put in HTML and you never quite know what it should be? Did you ever get an email from your friends in Bulgaria with the subject line "???? ?????? I've been dismayed to discover just how many software developers aren't really completely up to speed on the mysterious world of character sets, encodings, Unicode, all that stuff. But it won't.

So I have an announcement to make: if you are a programmer working in 2003 and you don't know the basics of characters, character sets, encodings, and Unicode, and I catch you, I'm going to punish you by making you peel onions for 6 months in a submarine. And one more thing: In this article I'll fill you in on exactly what every working programmer should know. A Historical Perspective The easiest way to understand this stuff is to go chronologically. And all was good, assuming you were an English speaker.

Unicode Hello Encodings. Injektivität. Eine injektive Funktion; X ist die Definitionsmenge und Y die Zielmenge.

Injektivität

(Die Bildmenge besteht hier aus den Elementen A, B und D) Sie besagt, dass jedes Element der Zielmenge höchstens einmal als Funktionswert angenommen wird. Es werden also keine zwei verschiedenen Elemente der Definitionsmenge auf ein und dasselbe Element der Zielmenge abgebildet. Dabei darf die Bildmenge kleiner als die Zielmenge sein – wie es beispielsweise in der Grafik der Fall ist. Dies macht den Unterschied zu einer bijektiven Abbildung aus, bei der unbedingt jedem Element der Zielmenge ein Element der Definitionsmenge entsprechen muss. Definitionen[Bearbeiten] Seien und Mengen, sowie eine Abbildung von nach . Heißt injektiv, wenn zu jedem aus höchstens ein aus existiert mit . Verwendet man die dritte Definition zum Nachweis der Injektivität, führt dies oft zu einem Widerspruchsbeweis. Grafische Veranschaulichungen[Bearbeiten] Beispiele und Gegenbeispiele[Bearbeiten] Nicht-injektive Funktion ist injektiv.

. . , dann ist. Bijektive Funktion. Die Bijektion einer Menge auf sich selbst heißt auch Permutation.

Bijektive Funktion

Auch hier gibt es in mathematischen Strukturen vielfach eigene Namen. Hat die Bijektion darüber hinausgehend strukturerhaltende Eigenschaften, spricht man von einem Automorphismus. Definition[Bearbeiten] Seien und Mengen; und sei nach abbildet, also ist bijektiv, wenn für alle genau ein mit existiert. Das bedeutet: ist bijektiv dann und nur dann, wenn sowohl (1) injektiv ist: besteht aus genau einem Element von als auch (2) surjektiv ist: wird angenommen. Stimmen überein, also Grafische Veranschaulichungen[Bearbeiten] Surjektivität. Definition[Bearbeiten] Es seien und Mengen, sowie eine Abbildung. heißt surjektiv, wenn für alle aus mindestens ein mit existiert.

Surjektivität

Formal: Grafische Veranschaulichungen[Bearbeiten] Das Prinzip der Surjektivität: Jeder Punkt in der Zielmenge (Y) wird mindestens einmal getroffen.Graphen dreier surjektiver Funktionen zwischen reellen Intervallen.Ein Sonderfall der Surjektivität: Die Zielmenge (Y) besteht nur aus einem Element. Beispiele und Gegenbeispiele[Bearbeiten] Die Funktion mit ist surjektiv, denn für jede reelle Zahl gibt es ein Urbild.

Ist nicht surjektiv, da z. Kein Urbild hat. ist surjektiv. Eigenschaften[Bearbeiten] Mächtigkeiten von Mengen[Bearbeiten] Für eine endliche Menge einfach die Anzahl der Elemente von . Eine surjektive Funktion zwischen endlichen Mengen, dann kann höchstens so viele Elemente wie haben, es gilt also Für unendliche Mengen wird der Größenvergleich von Mächtigkeiten zwar mit Hilfe des Begriffs Injektion definiert, aber auch hier gilt: Ist ebenfalls geschrieben als O.