summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMZuenni <michi.zuendorf@gmail.com>2023-01-31 15:22:19 +0100
committerMZuenni <michi.zuendorf@gmail.com>2023-01-31 15:22:19 +0100
commit5cd8e61fbe1b64128551aaa654388f44e8dc6536 (patch)
tree5a10b667335c3ba2b9951ac6c920e6c173db0e3c
parent2ce6e6376ee0c0753837b7d423bd7cc297d37220 (diff)
added traingles
-rw-r--r--geometry/geometry.tex1
-rw-r--r--geometry/triangle.tex41
-rw-r--r--latexHeaders/commands.sty1
-rw-r--r--string/suffixArray.cpp13
-rw-r--r--tcr.pdfbin642993 -> 643813 bytes
5 files changed, 49 insertions, 7 deletions
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<pair<pair<int, int>, int>> L;
int n, step, count;
+ vector<int> SA, LCP;
vector<vector<int>> P;
- vector<int> SA, LCP;
+ vector<pair<pair<int, int>, 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<int>(n));
+ SuffixArray(const string& s) : n(sz(s)), SA(n), LCP(n), L(n) {
+ P.assign(__lg(n)*4-2, vector<int>(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
--- a/tcr.pdf
+++ b/tcr.pdf
Binary files differ