From 5cd8e61fbe1b64128551aaa654388f44e8dc6536 Mon Sep 17 00:00:00 2001 From: MZuenni Date: Tue, 31 Jan 2023 15:22:19 +0100 Subject: added traingles --- geometry/geometry.tex | 1 + geometry/triangle.tex | 41 +++++++++++++++++++++++++++++++++++++++++ latexHeaders/commands.sty | 1 + string/suffixArray.cpp | 13 ++++++------- tcr.pdf | Bin 642993 -> 643813 bytes 5 files changed, 49 insertions(+), 7 deletions(-) create mode 100644 geometry/triangle.tex diff --git a/geometry/geometry.tex b/geometry/geometry.tex index e52e454..3e50a8e 100644 --- a/geometry/geometry.tex +++ b/geometry/geometry.tex @@ -30,6 +30,7 @@ \subsection{Formeln~~--~\texttt{std::complex}} \sourcecode{geometry/formulars.cpp} \sourcecode{geometry/linesAndSegments.cpp} +\input{geometry/triangle} \sourcecode{geometry/triangle.cpp} \sourcecode{geometry/polygon.cpp} \sourcecode{geometry/circle.cpp} diff --git a/geometry/triangle.tex b/geometry/triangle.tex new file mode 100644 index 0000000..3decd54 --- /dev/null +++ b/geometry/triangle.tex @@ -0,0 +1,41 @@ + +\begin{minipage}[T]{0.27\linewidth} + Generell: + \begin{itemize} + \item $\cos(\gamma)=\frac{a^2+b^2-c^2}{2ab}$ + \item $b=\frac{a}{\sin(\alpha)}\sin(\beta)$ + %\item $b=\frac{a}{\sin(\pi-\beta-\gamma)}\sin(\beta)$ + %\item $\sin(\beta)=\frac{b\sin(\alpha)}{a}$ %asin is not uniquely invertible + \item $\Delta=\frac{bc}{2}\sin(\alpha)$ + \end{itemize} +\end{minipage} +\hfill +\begin{minipage}[B]{0.5\linewidth} + \centering + \begin{tikzpicture}[line cap=round,minimum size=0,x=.7cm,y=0.7cm] + \node[circle,inner sep=0] (AA) at (0,0) {$A$}; + \node[circle,inner sep=0] (BB) at (3,-1) {$B$}; + \node[circle,inner sep=0] (CC) at (3.666667,1) {$C$}; + + \coordinate (A) at (AA.0); + \coordinate (B) at (BB.100); + \coordinate (C) at (CC.210); + + \pic[draw,angle radius=15,pic text=$\gamma$]{angle = A--C--B}; + \pic[draw,angle radius=15,pic text=$\beta$]{angle = C--B--A}; + \pic[draw,angle radius=20,pic text=$\alpha$]{angle = B--A--C}; + + \draw (A) to[edge label={$b$},inner sep=1] (C); + \draw (A) to[edge label'={$c$},inner sep=1.3] (B); + \draw (B) to[edge label'={$a$},inner sep=0.6] (C); + \end{tikzpicture} +\end{minipage} +\hfill +\begin{minipage}[T]{0.16\linewidth} + $\beta=90^\circ$: + \begin{itemize} + \item $\sin(\alpha)=\frac{a}{b}$ + \item $\cos(\alpha)=\frac{c}{b}$ + \item $\tan(\alpha)=\frac{a}{c}$ + \end{itemize} +\end{minipage} diff --git a/latexHeaders/commands.sty b/latexHeaders/commands.sty index abe589d..c23fbfc 100644 --- a/latexHeaders/commands.sty +++ b/latexHeaders/commands.sty @@ -7,6 +7,7 @@ \newcommand{\code}[1]{\lstinline[breaklines=true]{#1}} \usepackage{tikz} +\usetikzlibrary{angles,quotes} %new environment to define algorithms diff --git a/string/suffixArray.cpp b/string/suffixArray.cpp index 3494a0b..df6259a 100644 --- a/string/suffixArray.cpp +++ b/string/suffixArray.cpp @@ -1,12 +1,11 @@ struct SuffixArray { - vector, int>> L; int n, step, count; + vector SA, LCP; vector> P; - vector SA, LCP; + vector, int>> L; - SuffixArray(const string& s) : n(sz(s)) { - SA.resize(n); LCP.resize(n); L.resize(n); - P.assign(__ln(n)*4-2, vector(n)); + SuffixArray(const string& s) : n(sz(s)), SA(n), LCP(n), L(n) { + P.assign(__lg(n)*4-2, vector(n)); for (int i = 0; i < n; i++) P[0][i] = s[i]; for (step = 1, count = 1; count < n; step++, count *= 2) { for (int i = 0; i < n; i++) @@ -26,12 +25,12 @@ struct SuffixArray { int lcp(int x, int y) { int ret = 0; if (x == y) return n - x; - for (int k = step - 1; k >= 0 && x < n && y < n; k--) + for (int k = step - 1; k >= 0 && x < n && y < n; k--) { if (P[k][x] == P[k][y]) { x += 1 << k; y += 1 << k; ret += 1 << k; - } + }} return ret; } }; diff --git a/tcr.pdf b/tcr.pdf index fe47838..83429b2 100644 Binary files a/tcr.pdf and b/tcr.pdf differ -- cgit v1.2.3