diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..76198b5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +*.* +!.gitignore +!*.tex +!*.png \ No newline at end of file diff --git a/Digitaltechnik/D_FF.png b/Digitaltechnik/images/D_FF.png similarity index 100% rename from Digitaltechnik/D_FF.png rename to Digitaltechnik/images/D_FF.png diff --git a/Digitaltechnik/JK_FF.png b/Digitaltechnik/images/JK_FF.png similarity index 100% rename from Digitaltechnik/JK_FF.png rename to Digitaltechnik/images/JK_FF.png diff --git a/Digitaltechnik/TPS_RS_FF.png b/Digitaltechnik/images/TPS_RS_FF.png similarity index 100% rename from Digitaltechnik/TPS_RS_FF.png rename to Digitaltechnik/images/TPS_RS_FF.png diff --git a/Digitaltechnik/T_FF.png b/Digitaltechnik/images/T_FF.png similarity index 100% rename from Digitaltechnik/T_FF.png rename to Digitaltechnik/images/T_FF.png diff --git a/Digitaltechnik/inhalt/04_Schaltwerke.tex b/Digitaltechnik/inhalt/04_Schaltwerke.tex index c15c925..fa9ccb6 100644 --- a/Digitaltechnik/inhalt/04_Schaltwerke.tex +++ b/Digitaltechnik/inhalt/04_Schaltwerke.tex @@ -26,7 +26,7 @@ Aktiv bei steigender oder fallender Flanke. \subsubsection{RS-Flip-Flop} -\includegraphics[width=0.2\textwidth]{TPS_RS_FF.png} +\includegraphics[width=0.2\textwidth]{images/TPS_RS_FF.png} 2 Eingänge: S (Set) und R (Reset) \\ 2 Ausgänge: Q und Q* (Q negiert) \\ @@ -35,7 +35,7 @@ Verbotene Zustände: S = R = 1 \subsubsection{D-Flip-Flop} -\includegraphics[width=0.2\textwidth]{D_FF.png} +\includegraphics[width=0.2\textwidth]{images/D_FF.png} 1 Eingang: D (Data) \\ 2 Ausgänge: Q und Q* (Q negiert) \\ @@ -44,7 +44,7 @@ Keine verbotenen Zustände \subsubsection{JK-Flip-Flop} -\includegraphics[width=0.2\textwidth]{JK_FF.png} +\includegraphics[width=0.2\textwidth]{images/JK_FF.png} 2 Eingänge: J und K \\ 2 Ausgänge: Q und Q* (Q negiert) \\ @@ -53,7 +53,7 @@ Keine verbotenen Zustände (J=K=1: Togglen) \subsubsection{T-Flip-Flop} -\includegraphics[width=0.2\textwidth]{T_FF.png} +\includegraphics[width=0.2\textwidth]{images/T_FF.png} 1 Eingang: T (Toggle) \\ 2 Ausgänge: Q und Q* (Q negiert) \\ diff --git a/Lineare Algebra/bijektiv.png b/Lineare Algebra/bijektiv.png deleted file mode 100644 index 3b0d8c1..0000000 Binary files a/Lineare Algebra/bijektiv.png and /dev/null differ diff --git a/Lineare Algebra/injektiv.png b/Lineare Algebra/injektiv.png deleted file mode 100644 index 7cd978a..0000000 Binary files a/Lineare Algebra/injektiv.png and /dev/null differ diff --git a/Lineare Algebra/surjektiv.png b/Lineare Algebra/surjektiv.png deleted file mode 100644 index c33555d..0000000 Binary files a/Lineare Algebra/surjektiv.png and /dev/null differ diff --git a/Theoretische Informatik 1/inhalt/01_Logik.tex b/Theoretische Informatik 1/inhalt/01_Logik.tex new file mode 100644 index 0000000..be0fd4f --- /dev/null +++ b/Theoretische Informatik 1/inhalt/01_Logik.tex @@ -0,0 +1,63 @@ +\section{Logik} + +\subsection{Logische Ausdrücke} + +Logische Ausdrücke aufstellen aus gegebenen Aussagen. + +Wahrheitstabellen aufstellen. + +Vereinfachung von logischen Ausdrücken. + +\subsection{Logisches Schließen} + +Logisches Schließen mit Hilfe von Regeln in Tabellarischer oder Textform. + +\subsubsection{Regeln} + +\begin{tabular}{l | l} + II & Induzierte Implikation \\ + IE & Implikation Elimination \\ + K & Konjunktion \\ + KL & Konjunktion Links \\ + KR & Konjunktion Rechts \\ + D & Disjunktion \\ + DL & Disjunktion Links \\ + DR & Disjunktion Rechts \\ + F & Falsch \\ + TND & Tertium non datur ($A \lor \lnot A$) \\ + AE & Allquantor Elimination \\ + AI & Induzierter Allquantor \\ + EI & Existenzquantor Implikation \\ + EE & Existenzquantor Elimination +\end{tabular} + +\subsection{Prädikatenlogik} + +Prädikatenlogische Ausdrücke aufstellen, negieren, relationen. + +\subsubsection{Relationen} +$\forall x : \forall y : P(x,y) \Leftrightarrow \forall y : \forall x : P(x,y)$ +$\exists x : \exists y : P(x,y) \Leftrightarrow \exists y : \exists x : P(x,y)$ + +$\exists x : \forall y : P(x,y) \Rightarrow \forall y : \exists x : P(x,y)$ + +$\lnot \forall x : P(x) \Leftrightarrow \exists x : \lnot P(x)$ +$\lnot \exists x : P(x) \Leftrightarrow \forall x : \lnot P(x)$ + +\subsection{Vollständige Induktion} + +\[ + \sum_{k=1}^n k = \frac{n\cdot(n+1)}{2} +\] + +\emph{Induktionsanfang:}\\ +Für $n=1$ gilt +\[ \frac{1 \cdot (1+1)}{2} = \frac{2}{2} = 1.\] +Die Behauptung ist also wahr für $n=1$.\\ +\emph{Induktionsschritt:}\\ +Sei die Behauptung nun wahr für ein $n \in \mathbb{N}$. Dann erhalten wir + +$$\sum_{k=1}^{n+1} k = \sum_{k=1}^n k + (n+1) = \frac{n \cdot (n+1)}{2} + (n+1)$$ +$$= \frac{n^2+n+2n+2}{2} = \frac{(n+1)(n+2)}{2}$$ + +Die Aussage gilt also auch für $n+1$. diff --git a/Theoretische Informatik 1/inhalt/02_Relationen.tex b/Theoretische Informatik 1/inhalt/02_Relationen.tex new file mode 100644 index 0000000..c9ff2ed --- /dev/null +++ b/Theoretische Informatik 1/inhalt/02_Relationen.tex @@ -0,0 +1,37 @@ +\section{Relationen} + +\subsection{Äquivlanzrelationen} + +\begin{itemize} + \item \textbf{Reflexivität}: $x \sim x$ für alle $x \in R$ + \item \textbf{Symmetrie}: $x \sim y \in R \Rightarrow y \sim x \in R$ + \item \textbf{Transitivität}: $x \sim y \in R \land y \sim z \in R \Rightarrow x \sim z \in R$ +\end{itemize} + +\subsection{Ordnungsrelationen} + +\begin{itemize} + \item \textbf{Antisymmetrie}: $x \sim y \in R \land y \sim x \in R \Rightarrow x = y$ + \item \textbf{Reflexivität} + \item \textbf{Transitivität} +\end{itemize} + +\subsection{strikte Ordnungsrelationen} + +\begin{itemize} + \item \textbf{Asymmetrie}: $x \sim y \in R \land y \sim x \notin R$ + \item \textbf{Transitivität} +\end{itemize} + +\subsection{Kleinste und Größte Elemente} + +\textbf{Kleinstes Element}: $x \in M$ ist kleinstes Element, wenn $\forall y \in M : x \leq y$ (Ein Element, das nur links in den Tupeln auftaucht) \\ +\textbf{Minimale Elemente}: $x \in M$ ist minimal, wenn $\nexists y \in M : y < x$ (Alle Elemente, die nur links in den Tupeln auftauchen) \\ +\textbf{Größtes Element}: $x \in M$ ist größtes Element, wenn $\forall y \in M : x \geq y$ (Ein Element, das nur rechts in den Tupeln auftaucht) \\ +\textbf{Maximale Elemente}: $x \in M$ ist maximal, wenn $\nexists y \in M : y > x$ (Alle Elemente, die nur rechts in den Tupeln auftauchen) + +\subsection{Äquivalenzklassen} + +\textbf{Äquivalenzklasse}: $[x] = \{y \in M | x \sim y\}$ (Alle elemente, die $x$ links im Tupel stehen haben) \\ +\textbf{Äquivalenzrelation}: $x \sim y \Leftrightarrow [x] = [y]$ \\ +\textbf{Menge der Äquivalenzklassen}: $R / M = \{[x] | x \in M\}$ (Keine Duplikate) diff --git a/Theoretische Informatik 1/inhalt/03_Algorithmen.tex b/Theoretische Informatik 1/inhalt/03_Algorithmen.tex new file mode 100644 index 0000000..2e2c2ac --- /dev/null +++ b/Theoretische Informatik 1/inhalt/03_Algorithmen.tex @@ -0,0 +1,84 @@ +\section{Algorithmen} + +\subsection{Teilsummenproblem} + +Ist ein NP-vollständiges Problem. + +Jede Zahl darf nur einmal verwendet werden. +In der Summe muss eine bestimmte Zahl erreicht werden. + +\subsection{3-SAT Problem} + +Ist ein NP-vollständiges Problem. + +Finden einer Belegung an Variablen, sodass eine Formel erfüllt wird. + +Die Formel hat die Form: + +\[ + (x_1 \lor x_2 \lor x_3) \land (x_4 \lor x_5 \lor x_6) \land \ldots +\] + +\subsubsection{Umwandlung in Teilsummenproblem} + +Zielzahl: +\[ + 1 \dots 1 \ 4 \dots 4 +\] +mit $1$ für jede Variable und $4$ für jede Klausel (Klammer). + +Zahlen aus denen die Summe gebildet wird: + +\textbf{1. Teil}: 1 an der Stelle der Variable, 0 ansonsten + +\textbf{2. Teil}: 1 an der Stelle an der Die Variable in der Klausen positiv/negativ vorkommt, 0 ansonsten + +\begin{tabular}{c | l | l} + Variable & positive Belegung & negative Belegung \\ + & (1er wenn positiv) & (1er wenn negativ) \\ + \hline + $x_1$ & $0 \dots 001 \ pos_1 \dots pos_n$ & $0 \dots 001 \ neg_1 \dots neg_n$ \\ + $x_2$ & $0 \dots 010 \ pos_1 \dots pos_n$ & $0 \dots 010 \ neg_1 \dots neg_n$ \\ + $x_3$ & $0 \dots 100 \ pos_1 \dots pos_n$ & $0 \dots 100 \ neg_1 \dots neg_n$ \\ + \dots & \dots & \dots +\end{tabular} + +\subsection{Programmablaufplan} + +\subsubsection{Allgemeinheit} +Löst eine Klasse von Problemen. + +\subsubsection{Ausführbarkeit} +Jeder Schritt ist ausführbar. + +\subsubsection{Determinismus} +Jeder Schritt ist eindeutig, unabängig von Ein und Ausgaben. + +\subsubsection{Determiniertheit} +Bei gleichen Eingaben, gleiche Ausgaben. + +\subsubsection{Finitheit} +Beschreibung besitzt endliche Länge. + +\subsubsection{Terminierung} +Die Ausführung endet bei einer endlichen Eingabe + +\subsubsection{Dynamische Finitheit} +Beschränkter Resourcenverbrauch bei endlicher Eingabe. + +\subsubsection{Komplexität} +Die Laufzeit / Resourcenverbrauch ist abschätzbar. + +\subsection{Hoare-Kalkül} + +\subsubsection{Vorbedingung} +Bedingung die vor der Ausführung der Zeile gelten muss. + +\subsubsection{Nachbedingung} +Bedingung die nach der Ausführung der Zeile gelten muss. + +\subsubsection{Schleifenbedingung} +Bedingung die vor jedem Schleifendurchlauf gelten muss. + +\subsubsection{Schleifeninvariante} +Bedingung die vor und nach jedem Schleifendurchlauf gelten muss. diff --git a/Theoretische Informatik 1/inhalt/04_Deklarative_Programmierung.tex b/Theoretische Informatik 1/inhalt/04_Deklarative_Programmierung.tex new file mode 100644 index 0000000..63d3fbf --- /dev/null +++ b/Theoretische Informatik 1/inhalt/04_Deklarative_Programmierung.tex @@ -0,0 +1,19 @@ +\section{Deklarative Programmierung} + +\subsection{Ausdrucksbäume} + +Umwandlung von Ausdrücken in Bäume. + +\subsection{Unifizierung} + +Wahl von Variablen, sodass zwei Ausdrücke gleich sind. + +\subsection{Prolog} + +Umsetzen von Problemen in Prolog. + +\subsection{Haskell} + +Umsetzen von Problemen in Haskell. + +Typen eines Ausdrucks angeben. diff --git a/Theoretische Informatik 1/main.tex b/Theoretische Informatik 1/main.tex new file mode 100644 index 0000000..e342823 --- /dev/null +++ b/Theoretische Informatik 1/main.tex @@ -0,0 +1,76 @@ +\documentclass[10pt,landscape,a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[ngerman]{babel} +\usepackage[T1]{fontenc} +%\usepackage[LY1,T1]{fontenc} +%\usepackage{frutigernext} +%\usepackage[lf,minionint]{MinionPro} +\usepackage{tikz} +\usetikzlibrary{shapes,positioning,arrows,fit,calc,graphs,graphs.standard} +\usepackage[nosf]{kpfonts} +\usepackage[t1]{sourcesanspro} +\usepackage{multicol} +\usepackage{wrapfig} +\usepackage[top=4mm,bottom=4mm,left=4mm,right=4mm]{geometry} +\usepackage[framemethod=tikz]{mdframed} +\usepackage{microtype} +\usepackage{pdfpages} + +\let\bar\overline + +\definecolor{myblue}{cmyk}{1,.72,0,.38} + +\def\firstcircle{(0,0) circle (1.5cm)} +\def\secondcircle{(0:2cm) circle (1.5cm)} + +\colorlet{circle edge}{myblue} +\colorlet{circle area}{myblue!5} + +\tikzset{filled/.style={fill=circle area, draw=circle edge, thick}, + outline/.style={draw=circle edge, thick}} + +\pgfdeclarelayer{background} +\pgfsetlayers{background,main} + +\everymath\expandafter{\the\everymath \color{myblue}} +\everydisplay\expandafter{\the\everydisplay \color{myblue}} + +\renewcommand{\baselinestretch}{.8} +\pagestyle{empty} + +\global\mdfdefinestyle{header}{% +linecolor=gray,linewidth=1pt,% +leftmargin=4mm,rightmargin=4mm,skipbelow=4mm,skipabove=4mm, +} + +\newcommand{\header}{ +\begin{mdframed}[style=header] +\footnotesize +\sffamily +Cheat sheet\\ +by~Your~Name,~page~\thepage~of~2 +\end{mdframed} +} + +\makeatletter +\renewcommand{\section}{\@startsection{section}{1}{0mm}% + {.2ex}% + {.2ex}%x + {\color{myblue}\sffamily\small\bfseries}} +\renewcommand{\subsection}{\@startsection{subsection}{1}{0mm}% + {.2ex}% + {.2ex}%x + {\sffamily\bfseries}} + +\makeatother +\setlength{\parindent}{0pt} + +\begin{document} +\small +\begin{multicols*}{3} + \input{inhalt/01_Logik} + \input{inhalt/02_Relationen} + \input{inhalt/03_Algorithmen} + \input{inhalt/04_Deklarative_Programmierung} +\end{multicols*} +\end{document}