6.6. Operationen#

6.6.1. Betrag#

Die Betragsfunktion \(|\cdot| : \mathbb{R} \rightarrow \mathbb{R}^+\) wandelt eine negative Zahl in eine positive Zahl um.

Betragsfunktion

Sei \(x \in \mathbb{R}\) eine reelle Zahl, so ist ihr Betrag definiert als

\[\begin{split}\text{abs}(x) = |x| = \begin{cases} -x, & \text{ falls } x < 0 \\ x, & \text{ sonst.} \end{cases}\end{split}\]
abs(-10)
10

6.6.2. Max- und Minimum#

Maximum

Für eine nicht leere Menge \(M \subset \mathbb{R}\) ist das Maximum \(\max M\) definiert als

\[\max M = x \text{ sodass } x \in M \text{ und } \forall y \in M : x \geq y\]
M = {1,2,3,4,5}
max(M)
5

Maximum

Für eine nicht leere Menge \(M \subset \mathbb{R}\) ist das Minimum \(\min M\) definiert als

\[\min M = x \text{ sodass } x \in M \text{ und } \forall y \in M : x \leq y.\]
M = {1,2,3,4,5}
min(M)
1

6.6.3. Ab- und Aufrunden#

Bei der Entwicklung Ihrer Algorithmen werden sie das Abrunden sehr oft einsetzten. Es wird in allen gängigen Programmiersprachen implizit durchgeführt, wenn Sie eine Gleitkommazahl in eine ganze Zahl umwandeln.

import math
print(int(1.49))
print(math.floor(1.49))
1
1

Diese Abrundungsfunktion \(\left \lfloor{\cdot}\right \rfloor : \mathbb{R} \rightarrow \mathbb{Z}\) rundet Zahlen zur nächst größeren ganzen Zahl auf.

Abrunden

Sei \(x \in \mathbb{R}\) so ist \(x\) aufgerundet gleich

\[\text{floor}(x) = \left \lfloor{x}\right \rfloor = \max\{k \in \mathbb{Z} : k \leq x \}.\]

Diese Aufrundungsfunktion \(\left \lceil{\cdot}\right \rceil : \mathbb{R} \rightarrow \mathbb{Z}\) rundet Zahlen zur nächst kleineren ganzen Zahl ab.

Aufrunden

Sei \(x \in \mathbb{R}\) so ist \(x\) abgerundet gleich

\[\text{ceil}(x) = \left \lceil{x}\right \rceil = \min\{k \in \mathbb{Z} : k \geq x \}.\]
import math
print(math.ceil(1.49))
print(math.ceil(-1.49))
2
-1

6.6.4. Die Restwertdivision#

Restwert

Für zwei ganze Zahlen \(n, m \in \mathbb{Z}\), \(m \neq 0\) gibt es zwei eindeutige ganze Zahlen \(a, r \in \mathbb{Z}\), sodass

\[ n = m \cdot a + r, \quad 0 \leq r < |m|. \]

Wir nennen \(r\) den Rest.

Seien \(n, m\) gegeben so lassen sich \(a\) durch die Division und das Abrunden ermitteln.

\[a = \left \lfloor{ n / m}\right \rfloor\]

und damit lässt sich der Rest \(r\) bestimmen

\[r = n - a \cdot m.\]

Zum Beispiel gilt für \(n = 13\), \(m = 5\):

\[\begin{gather*} a = \left \lfloor{13/5}\right \rfloor = 2\\ r = 13 - 2 \cdot 5 = 3. \end{gather*}\]

Die Restwertdivision wird von allem gängigen Programmiersprachen durch den % Operator unterstützt und ist für Computer relativ günstig zu berechnen. Mithilfe dieser Operation können wir zum Beispiel feststellen ob eine ganze Zahl gerade oder ungerade ist. Das ist genau dann der Fall wenn der Rest \(r\) der Restwertdivision mit 2 gleich null ist.

print(5 % 2 == 0)
print(13 % 5)
False
3