Über die Notation verzweigter Funktionen

Bei der Notation von Funktionsdefinitionen mit Fallunterscheidung verwendet man geschweifte Klammern. Wir gehen der einfachen Frage nach, ob man diese Darstellung auch eliminieren kann und die Funktion auf eine Notation zurückführen kann, die ohne sie auskommt. Lässt sich beispielsweise die Funktion

$$f: \mathbb{R} \to \mathbb{R}, f(x) = \left\{\begin{matrix} 42, & \text{falls } x = 0 \\ x, & \text{sonst} \end{matrix}\right.$$

mit Hilfe der vier Grundrechenarten mit Hilfe eines einzeiligen Terms darstellen?


Das ist unmöglich und wir beweisen dies mit Hilfe der Stetigkeit.

Wir betrachten die Folge \((x_n)\) mit \(x_n = \frac{1}{n}\). Für diese Folge ist \( \lim_{ n \to \infty } x_n = \lim_{ n \to \infty } \frac{1}{n} = 0\). Außerdem ist \(\lim_{ n \to \infty } f(x_n) = \lim_{ n \to \infty } \frac{1}{n} = 0 \neq 42 = f(0)\) . Damit ist \(f\) an der Stelle \(x=0\) unstetig, insgesamt also unstetig.

Da wegen den Verkettungssätzen die Summe und das Produkt stetiger Funktionen wieder stetig ist, kann man mit Hilfe der vier Grundrechenarten nur stetige Funktionen (also insbesondere nie \(f\)) erzeugen.

Wenn wir jedoch beispielsweise die unstetige Signumfunktion erlauben, können wir eine solche Notation leicht finden. Dann ist nämlich

$$f: \mathbb{R} \to \mathbb{R}, f(x) = sgn^2(x-42)+42.$$

Für eine allgemeine Funktion \(f\) mit Fallunterscheidung gilt

$$f,g,h,a: \mathbb{R} \to \mathbb{R}, f(x) = \begin{Bmatrix} g(x), & \text{falls } a(x) = 0 \\ h(x), & \text{falls } a(x) \neq 0 \end{Bmatrix} = sgn^2 \left(a(x)\right)\cdot h(x) + \left(1-sgn^2\left(a(x)\right)\right)\cdot g(x).$$

Betrachtet man hingegen Funktionen in Programmiersprachen, lassen sich Verzweigungen auflösen. So ist beispielsweise in PHP die Signumfunktion abbildbar mit:

e367d0ca10c4f0ac43640ad7fd1b3f0d

Auch \(f\) lässt sich ganz ohne if-/else-Kontrollstrukturen darstellen mit:

e367d0ca10c4f0ac43640ad7fd1b3f0d

Will man zusätzlich auf Vergleichsoperatoren verzichten, kann man noch einen Schritt weiter gehen und in die schöne Welt der Bitweisen Operatoren eintauchen:

e367d0ca10c4f0ac43640ad7fd1b3f0d

Zurück