Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
dde65a8a63 | |||
f88160b5f5 | |||
e2947ea54b | |||
30713a7916 |
@ -5,7 +5,7 @@
|
||||
#import "misc.typ": *
|
||||
#import "object.typ": definition, example, generic, problem, remark, theorem
|
||||
#import "solution.typ": (
|
||||
if_no_solutions, if_solutions, if_solutions_else, instructornote,
|
||||
if_no_solutions, if_solutions, if_solutions_else, instructornote, review_box,
|
||||
sample_solution, solution,
|
||||
)
|
||||
|
||||
@ -30,12 +30,17 @@
|
||||
by: none,
|
||||
subtitle: none,
|
||||
short_warning: false,
|
||||
page_numbers: true,
|
||||
) = {
|
||||
set page(
|
||||
margin: 20mm,
|
||||
width: 8.5in,
|
||||
height: 11in,
|
||||
footer: align(center, context counter(page).display()),
|
||||
footer: {
|
||||
if page_numbers {
|
||||
align(center, context counter(page).display())
|
||||
}
|
||||
},
|
||||
footer-descent: 5mm,
|
||||
)
|
||||
|
||||
@ -51,6 +56,8 @@
|
||||
justify: true,
|
||||
)
|
||||
|
||||
set math.mat(delim: "[")
|
||||
|
||||
//
|
||||
// List style
|
||||
set list(
|
||||
|
@ -106,6 +106,29 @@
|
||||
))
|
||||
}
|
||||
|
||||
#let review_box(title, content) = {
|
||||
align(center, stack(
|
||||
block(
|
||||
width: 100%,
|
||||
breakable: false,
|
||||
fill: oblue,
|
||||
stroke: oblue + 2pt,
|
||||
inset: 1.5mm,
|
||||
align(left, text(fill: white, weight: "bold", title)),
|
||||
),
|
||||
|
||||
block(
|
||||
width: 100%,
|
||||
height: auto,
|
||||
breakable: false,
|
||||
fill: oblue.lighten(80%).desaturate(10%),
|
||||
stroke: oblue + 2pt,
|
||||
inset: 3mm,
|
||||
align(left, content),
|
||||
),
|
||||
))
|
||||
}
|
||||
|
||||
|
||||
#let instructornote(content) = {
|
||||
if_solutions(align(center, stack(
|
||||
|
@ -27,7 +27,7 @@ We'll represent this probabilistic bit's \textit{state} as a vector:
|
||||
$\left[\begin{smallmatrix}
|
||||
p_0 \\ p_1
|
||||
\end{smallmatrix}\right]$ \par
|
||||
We do \textbf{not} assume this coin is fair, and thus $p_0$ might not equal $p_1$.
|
||||
We do \textbf{not} assume this coin is fair---$p_0$ might not equal $p_1$.
|
||||
|
||||
\note{
|
||||
This may seem a bit redundant: since $p_0 + p_1$, we can always calculate one probability given the other. \\
|
||||
@ -45,15 +45,16 @@ The simplest probabilistic bit states are of course $[0]$ and $[1]$, defined as
|
||||
\item $[0] = \left[\begin{smallmatrix} 1 \\ 0 \end{smallmatrix}\right]$
|
||||
\item $[1] = \left[\begin{smallmatrix} 0 \\ 1 \end{smallmatrix}\right]$
|
||||
\end{itemize}
|
||||
That is, $[0]$ represents a bit that we known to be \texttt{0}, \par
|
||||
That is, $[0]$ represents a bit that we know to be \texttt{0}, \par
|
||||
and $[1]$ represents a bit we know to be \texttt{1}.
|
||||
|
||||
\vfill
|
||||
\pagebreak
|
||||
|
||||
|
||||
\definition{}
|
||||
$[0]$ and $[1]$ form a \textit{basis} for all possible probabilistic bit states: \par
|
||||
Every other probabilistic bit can be written as a \textit{linear combination} of $[0]$ and $[1]$:
|
||||
$[0]$ and $[1]$ form a \textit{basis} for all possible probabilistic bit states. This means that \par
|
||||
every other probabilistic bit can be written as a \textit{linear combination} of $[0]$ and $[1]$:
|
||||
|
||||
\begin{equation*}
|
||||
\begin{bmatrix} p_0 \\ p_1 \end{bmatrix}
|
||||
@ -66,7 +67,6 @@ Every other probabilistic bit can be written as a \textit{linear combination} of
|
||||
|
||||
|
||||
\vfill
|
||||
\pagebreak
|
||||
|
||||
\problem{}
|
||||
Every possible state of a probabilistic bit is a two-dimensional vector. \par
|
||||
@ -118,6 +118,10 @@ Draw all possible states on the axis below.
|
||||
|
||||
|
||||
|
||||
%
|
||||
% MARK: measure
|
||||
%
|
||||
|
||||
|
||||
|
||||
\section{Measuring Probabilistic Bits}
|
||||
@ -125,7 +129,7 @@ Draw all possible states on the axis below.
|
||||
|
||||
\definition{}
|
||||
As we noted before, a probabilistic bit represents a coin we've tossed but haven't looked at. \par
|
||||
We do not know whether the bit is \texttt{0} or \texttt{1}, but we do know the probability of both of these outcomes. \par
|
||||
We do not know whether the bit is \texttt{0} or \texttt{1}, but we do know the probability of each outcome. \par
|
||||
|
||||
\vspace{2mm}
|
||||
|
||||
@ -135,7 +139,7 @@ knowledge of its state is updated to either $[0]$ or $[1]$, since we now certain
|
||||
\vspace{2mm}
|
||||
|
||||
Since measurement changes what we know about a probabilistic bit, it changes the probabilistic bit's state.
|
||||
When we measure a bit, it's state \textit{collapses} to either $[0]$ or $[1]$, and the original state of the
|
||||
When we measure a bit, its state \textit{collapses} to either $[0]$ or $[1]$, and the original state of the
|
||||
bit vanishes. We \textit{cannot} recover the state $[x_0, x_1]$ from a measured probabilistic bit.
|
||||
|
||||
|
||||
@ -165,7 +169,10 @@ Say $[x] = [\nicefrac{2}{3}, \nicefrac{1}{3}]$ and $[y] = [\nicefrac{3}{4}, \nic
|
||||
\item If we measure $y$ first and observe \texttt{1}, \par
|
||||
what is the probability of getting each of \texttt{00}, \texttt{01}, \texttt{10}, and \texttt{11}?
|
||||
\end{itemize}
|
||||
\note[Note]{$[x]$ and $[y]$ are column vectors, but I've written them horizontally to save space.}
|
||||
\note[Note]{
|
||||
$[x]$ and $[y]$ are column vectors in the previous pages, and are still column vectors here. \par
|
||||
I've written them horizontally to save space.
|
||||
}
|
||||
|
||||
|
||||
\vfill
|
||||
@ -189,7 +196,9 @@ What is the probability that $x$ and $y$ produce different outcomes?
|
||||
|
||||
|
||||
|
||||
|
||||
%
|
||||
% MARK: tensor product
|
||||
%
|
||||
|
||||
\section{Tensor Products}
|
||||
|
||||
@ -315,7 +324,7 @@ $?
|
||||
|
||||
\problem{}
|
||||
What is the \textit{span} of the vectors we found in \ref{basistp}? \par
|
||||
In other words, what is the set of vectors that can be written as linear combinations of the vectors above?
|
||||
In other words, what is the set of all vectors that can be written as linear combinations of the vectors above?
|
||||
|
||||
\vfill
|
||||
|
||||
@ -387,7 +396,7 @@ Compute the following. Is the result what we'd expect?
|
||||
|
||||
|
||||
\problem{}<fivequant>
|
||||
Of course, writing $[0] \otimes [1]$ is a bit excessive. We'll shorten this notation to $[01]$. \par
|
||||
Writing $[0] \otimes [1]$ is tedious. We'll shorten this notation to $[01]$. \par
|
||||
|
||||
\vspace{2mm}
|
||||
|
||||
@ -429,9 +438,9 @@ Write the three-bit states $[0]$ through $[7]$ as column vectors. \par
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
%
|
||||
% MARK: ops
|
||||
%
|
||||
|
||||
|
||||
|
||||
@ -443,25 +452,6 @@ Write the three-bit states $[0]$ through $[7]$ as column vectors. \par
|
||||
Now that we can write probabilistic bits as vectors, we can represent operations on these bits
|
||||
with linear transformations---in other words, as matrices.
|
||||
|
||||
\definition{}
|
||||
Consider the NOT gate, which operates as follows: \par
|
||||
\begin{itemize}
|
||||
\item $\text{NOT}[0] = [1]$
|
||||
\item $\text{NOT}[1] = [0]$
|
||||
\end{itemize}
|
||||
What should NOT do to a probabilistic bit $[x_0, x_1]$? \par
|
||||
If we return to our coin analogy, we can think of the NOT operation as
|
||||
flipping a coin we have already tossed, without looking at its state.
|
||||
Thus,
|
||||
\begin{equation*}
|
||||
\text{NOT} \begin{bmatrix}
|
||||
x_0 \\ x_1
|
||||
\end{bmatrix} = \begin{bmatrix}
|
||||
x_1 \\ x_0
|
||||
\end{bmatrix}
|
||||
\end{equation*}
|
||||
|
||||
|
||||
\begin{hobox}{Review: Multiplying Vectors by Matrices}{black!10!white}{black!65!white}
|
||||
\begin{equation*}
|
||||
Av =
|
||||
@ -482,6 +472,10 @@ Thus,
|
||||
Note that each element of $Av$ is the dot product of a row in $A$ and a column in $v$.
|
||||
\end{hobox}
|
||||
|
||||
\generic{Remark:}
|
||||
Also, recall that every matrix is linear map, and that every linear map may be written as a matrix. \par
|
||||
We often use the terms \textit{matrix}, \textit{transformation}, and \textit{linear map} interchangeably.
|
||||
|
||||
\problem{}
|
||||
Compute the following product:
|
||||
\begin{equation*}
|
||||
@ -496,12 +490,23 @@ Compute the following product:
|
||||
|
||||
\vfill
|
||||
|
||||
\generic{Remark:}
|
||||
Also, recall that every matrix is linear map, and that every linear map may be written as a matrix. \par
|
||||
We often use the terms \textit{matrix}, \textit{transformation}, and \textit{linear map} interchangeably.
|
||||
|
||||
\pagebreak
|
||||
|
||||
\definition{}
|
||||
Consider the NOT gate, which operates as follows: \par
|
||||
\begin{itemize}
|
||||
\item $\text{NOT}[0] = [1]$
|
||||
\item $\text{NOT}[1] = [0]$
|
||||
\end{itemize}
|
||||
What should NOT do to a probabilistic bit $[x_0, x_1]$? \par
|
||||
If we return to our coin analogy, we can think of the NOT operation as
|
||||
flipping a coin we have already tossed, without looking at its state.
|
||||
Thus,
|
||||
\begin{equation*}
|
||||
\text{NOT} \begin{bmatrix}
|
||||
x_0 \\ x_1
|
||||
\end{bmatrix} = \begin{bmatrix}
|
||||
x_1 \\ x_0
|
||||
\end{bmatrix}
|
||||
\end{equation*}
|
||||
|
||||
\problem{}
|
||||
Find the matrix that represents the NOT operation on one probabilistic bit.
|
||||
@ -516,6 +521,8 @@ Find the matrix that represents the NOT operation on one probabilistic bit.
|
||||
|
||||
\vfill
|
||||
|
||||
\pagebreak
|
||||
|
||||
|
||||
\problem{Extension by linearity}
|
||||
Say we have an arbitrary operation $M$. \par
|
||||
|
@ -4,7 +4,8 @@ Quantum bits (or \textit{qubits}) are very similar to probabilistic bits, but ha
|
||||
probabilities are replaced with \textit{amplitudes}.
|
||||
|
||||
\vspace{2mm}
|
||||
Of course, a qubit can take the values \texttt{0} and \texttt{1}, which are denoted $\ket{0}$ and $\ket{1}$. \par
|
||||
|
||||
As before a qubit can take the extremal values \texttt{0} and \texttt{1}, which are denoted $\ket{0}$ and $\ket{1}$. \par
|
||||
Like probabilistic bits, a quantum bit is written as a linear combination of $\ket{0}$ and $\ket{1}$:
|
||||
\begin{equation*}
|
||||
\ket{\psi} = \psi_0\ket{0} + \psi_1\ket{1}
|
||||
@ -19,8 +20,8 @@ $\ket{0}$ is pronounced \say{ket zero,} and $\ket{1}$ is pronounced \say{ket one
|
||||
|
||||
\vspace{2mm}
|
||||
This is very similar to the \say{box} $[~]$ notation we used for probabilistic bits. \par
|
||||
As before, we will write $\ket{0} = \left[\begin{smallmatrix} 1 \\ 0 \end{smallmatrix}\right]$
|
||||
and $\ket{1} = \left[\begin{smallmatrix} 0 \\ 1 \end{smallmatrix}\right]$.
|
||||
When we work with qubits, we will write $\left[\begin{smallmatrix} 1 \\ 0 \end{smallmatrix}\right]$ as $\ket{0}$
|
||||
and $\left[\begin{smallmatrix} 0 \\ 1 \end{smallmatrix}\right]$ as $\ket{1}$.
|
||||
|
||||
|
||||
\vspace{8mm}
|
||||
@ -28,7 +29,7 @@ and $\ket{1} = \left[\begin{smallmatrix} 0 \\ 1 \end{smallmatrix}\right]$.
|
||||
Recall that probabilistic bits are subject to the restriction that $p_0 + p_1 = 1$. \par
|
||||
Quantum bits have a similar condition: $\psi_0^2 + \psi_1^2 = 1$. \par
|
||||
Note that this implies that $\psi_0$ and $\psi_1$ are both in $[-1, 1]$. \par
|
||||
Quantum amplitudes may be negative, but probabilistic bit probabilities cannot.
|
||||
Quantum amplitudes may be negative!
|
||||
|
||||
\vspace{2mm}
|
||||
|
||||
@ -89,8 +90,8 @@ Write $\ket{\psi}$ as a linear combination of $\ket{0}$ and $\ket{1}$.
|
||||
|
||||
|
||||
\definition{Measurement I}
|
||||
Just like a probabilistic bit, we must observed $\ket{0}$ or $\ket{1}$ when we measure a qubit. \par
|
||||
If we were to measure $\ket{\psi} = \psi_0\ket{0} + \psi_1\ket{1}$, we'd observe either $\ket{0}$ or $\ket{1}$, \par
|
||||
Just like a probabilistic bit, we must observe $\ket{0}$ or $\ket{1}$ when we measure a qubit. \par
|
||||
If we measure $\ket{\psi} = \psi_0\ket{0} + \psi_1\ket{1}$, we will see either $\ket{0}$ or $\ket{1}$,
|
||||
with the following probabilities:
|
||||
\begin{itemize}[itemsep = 2mm, topsep = 2mm]
|
||||
\item $\mathcal{P}(\ket{1}) = \psi_1^2$
|
||||
@ -117,7 +118,7 @@ leaving no trace of the previous superposition. \par
|
||||
|
||||
\problem{}
|
||||
\begin{itemize}
|
||||
\item What is the probability we observe $\ket{0}$ when we measure $\ket{\psi}$? \par
|
||||
\item What is the probability that we observe $\ket{0}$ when we measure $\ket{\psi}$? \par
|
||||
\item What can we observe if we measure $\ket{\psi}$ a second time? \par
|
||||
\item What are these probabilities for $\ket{\varphi}$?
|
||||
\end{itemize}
|
||||
@ -235,6 +236,10 @@ Consider the following qubit states:
|
||||
\pagebreak
|
||||
|
||||
|
||||
%
|
||||
% MARK: ops
|
||||
%
|
||||
|
||||
\section{Operations on One Qubit}
|
||||
|
||||
We may apply transformations to qubits just as we apply transformations to probabilistic bits.
|
||||
@ -277,7 +282,7 @@ Find the matrix $X$.
|
||||
\vfill
|
||||
|
||||
\problem{}
|
||||
What is $X\ket{+}$ and $X\ket{-}$? \par
|
||||
What are $X\ket{+}$ and $X\ket{-}$? \par
|
||||
\hint{Remember that all matrices are linear maps. What does this mean?}
|
||||
|
||||
\begin{solution}
|
||||
@ -331,11 +336,21 @@ As we noted earlier, any rotation about the center is a valid quantum gate. \par
|
||||
Let's derive all transformations of this form.
|
||||
\begin{itemize}[itemsep = 1mm]
|
||||
\item Let $U_\phi$ be the matrix that represents a counterclockwise rotation of $\phi$ degrees. \par
|
||||
What is $U\ket{0}$ and $U\ket{1}$?
|
||||
What are $U\ket{0}$ and $U\ket{1}$?
|
||||
|
||||
\item Find the matrix $U_\phi$ for an arbitrary $\phi$.
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\begin{solution}
|
||||
\begin{equation*}
|
||||
\begin{bmatrix}
|
||||
cos(\theta) & -sin(\theta) \\
|
||||
sin(\theta) & cos(\theta)
|
||||
\end{bmatrix}
|
||||
\end{equation*}
|
||||
\end{solution}
|
||||
|
||||
\vfill
|
||||
|
||||
|
||||
@ -343,5 +358,10 @@ Let's derive all transformations of this form.
|
||||
Say we have a qubit that is either $\ket{+}$ or $\ket{-}$. We do not know which of the two states it is in. \par
|
||||
Using one operation and one measurement, how can we find out, for certain, which qubit we received? \par
|
||||
|
||||
|
||||
\begin{solution}
|
||||
Use a 45 degree ccw rotation.
|
||||
\end{solution}
|
||||
|
||||
\vfill
|
||||
\pagebreak
|
@ -60,7 +60,7 @@ $\ket{\psi} = \frac{1}{\sqrt{2}} \ket{00} + \frac{1}{2} \ket{01} + \frac{\sqrt{3
|
||||
Again, consider the two-qubit state
|
||||
$\ket{\psi} = \frac{1}{\sqrt{2}} \ket{00} + \frac{1}{2} \ket{01} + \frac{\sqrt{3}}{4} \ket{10} + \frac{1}{4} \ket{11}$ \par
|
||||
If we measure the first qubit of $\ket{\psi}$ and get $\ket{0}$, what is the resulting state of $\ket{\psi}$? \par
|
||||
What would the state be if we'd measured $\ket{1}$ instead?
|
||||
What would that state be if we'd measured $\ket{1}$ instead?
|
||||
|
||||
\vfill
|
||||
|
||||
@ -85,7 +85,7 @@ Say we measure the first two qubits and get $\ket{00}$. What is the resulting st
|
||||
|
||||
|
||||
\definition{Entanglement}
|
||||
Some product states can be factored into a tensor product of individual qubit states. For example,
|
||||
Some compound states can be factored into a tensor product of individual qubit states. For example,
|
||||
\begin{equation*}
|
||||
\frac{1}{2} \bigl(\ket{00} + \ket{01} + \ket{10} + \ket{11}\bigr)
|
||||
= \frac{1}{\sqrt{2}}\bigl( \ket{0} + \ket{1} \bigr) \otimes
|
||||
|
@ -1,40 +1,42 @@
|
||||
\section{Logic Gates}
|
||||
|
||||
\definition{Matrices}
|
||||
Throughout this handout, we've been using matrices. Again, recall that every linear map may be written as a matrix,
|
||||
and that every matrix represents a linear map. For example, if $f: \mathbb{R}^2 \to \mathbb{R}^2$ is a linear
|
||||
map, we can write it as follows:
|
||||
\begin{equation*}
|
||||
f\left(
|
||||
\ket{x}
|
||||
\right)
|
||||
=
|
||||
\begin{bmatrix}
|
||||
m_1 & m_2 \\
|
||||
m_3 & m_4
|
||||
\end{bmatrix}
|
||||
\begin{bmatrix} x_1 \\ x_2 \end{bmatrix}
|
||||
=
|
||||
\left[
|
||||
\begin{matrix}
|
||||
m_1x_1 + m_2x_2 \\
|
||||
m_3x_1 + m_4x_2
|
||||
\end{matrix}
|
||||
\right]
|
||||
\end{equation*}
|
||||
|
||||
%\definition{Matrices}
|
||||
%cThroughout this handout, we've been using matrices. Again, recall that every linear map may be written as a matrix,
|
||||
%and that every matrix represents a linear map. For example, if $f: \mathbb{R}^2 \to \mathbb{R}^2$ is a linear
|
||||
%map, we can write it as follows:
|
||||
%\begin{equation*}
|
||||
% f\left(
|
||||
% \ket{x}
|
||||
% \right)
|
||||
% =
|
||||
% \begin{bmatrix}
|
||||
% m_1 & m_2 \\
|
||||
% m_3 & m_4
|
||||
% \end{bmatrix}
|
||||
% \begin{bmatrix} x_1 \\ x_2 \end{bmatrix}
|
||||
% =
|
||||
% \left[
|
||||
% \begin{matrix}
|
||||
% m_1x_1 + m_2x_2 \\
|
||||
% m_3x_1 + m_4x_2
|
||||
% \end{matrix}
|
||||
% \right]
|
||||
%\end{equation*}
|
||||
%
|
||||
%A classical logic gate is a linear map from $\{0,1\}^m$ to $\{0,1\}^n$
|
||||
|
||||
\definition{}
|
||||
Before we discussing multi-qubit quantum gates, we need to review to classical logic. \par
|
||||
Of course, a classical logic gate is a linear map from $\{0,1\}^m$ to $\{0,1\}^n$
|
||||
Before we discussing multi-qubit quantum gates, we need to review classical logic. \par
|
||||
In this section, let's return to probabilistic bits.
|
||||
|
||||
|
||||
|
||||
\problem{}<notgatex>
|
||||
The \texttt{not} gate is a map defined by the following table: \par
|
||||
|
||||
\begin{itemize}
|
||||
\item $X\ket{0} = \ket{1}$
|
||||
\item $X\ket{1} = \ket{0}$
|
||||
\item $X[0] = [1]$
|
||||
\item $X[1] = [0]$
|
||||
\end{itemize}
|
||||
|
||||
Write the \texttt{not} gate as a matrix that operates on single-bit vector states. \par
|
||||
@ -93,11 +95,11 @@ Find a matrix $A$ so that $A\ket{\texttt{ab}}$ works as expected. \par
|
||||
|
||||
\vspace{2mm}
|
||||
For example, if we look at the first column of $A$ (which is $[1, 0]$), we see: \par
|
||||
$A\ket{00} = A[1,0,0,0] = [1,0] = \ket{0}$
|
||||
$A[00] = A[1,0,0,0] = [1,0] = [0]$
|
||||
|
||||
\vspace{2mm}
|
||||
Also with the last column (which is $[0,1]$): \par
|
||||
$A\ket{00} = A[0,0,0,1] = [0,1] = \ket{1}$
|
||||
$A[00] = A[0,0,0,1] = [0,1] = [1]$
|
||||
\end{instructornote}
|
||||
\end{solution}
|
||||
|
||||
@ -244,10 +246,10 @@ Say we want to invert the first bit of a two-bit state. That is, we want a trans
|
||||
|
||||
In other words, we want a matrix $T$ satisfying the following equalities:
|
||||
\begin{itemize}
|
||||
\item $T\ket{00} = \ket{10}$
|
||||
\item $T\ket{01} = \ket{11}$
|
||||
\item $T\ket{10} = \ket{00}$
|
||||
\item $T\ket{11} = \ket{01}$
|
||||
\item $T[00] = [10]$
|
||||
\item $T[01] = [11]$
|
||||
\item $T[10] = [00]$
|
||||
\item $T[11] = [01]$
|
||||
\end{itemize}
|
||||
|
||||
|
||||
@ -256,8 +258,8 @@ In other words, we want a matrix $T$ satisfying the following equalities:
|
||||
Find the matrix that corresponds to the above transformation. \par
|
||||
\hint{
|
||||
Remember that
|
||||
$\ket{0} = \left[\begin{smallmatrix} 1 \\ 0 \end{smallmatrix}\right]$ and
|
||||
$\ket{1} = \left[\begin{smallmatrix} 0 \\ 1 \end{smallmatrix}\right]$ \\
|
||||
$[0] = \left[\begin{smallmatrix} 1 \\ 0 \end{smallmatrix}\right]$ and
|
||||
$[1] = \left[\begin{smallmatrix} 0 \\ 1 \end{smallmatrix}\right]$ \\
|
||||
Also, we found earlier that $X = \left[\begin{smallmatrix} 0 && 1 \\ 1 && 0 \end{smallmatrix}\right]$,
|
||||
and of course $I = \left[\begin{smallmatrix} 1 && 0 \\ 0 && 1 \end{smallmatrix}\right]$.
|
||||
}
|
||||
@ -279,25 +281,26 @@ Find the matrix that corresponds to the above transformation. \par
|
||||
We could draw the above transformation as a combination $X$ and $I$ (identity) gate:
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[scale=0.8]
|
||||
\node[qubit] (a) at (0, 0) {$\ket{0}$};
|
||||
\node[qubit] (b) at (0, -1) {$\ket{0}$};
|
||||
\node[qubit] (a) at (0, 0) {$[0]$};
|
||||
\node[qubit] (b) at (0, -1) {$[0]$};
|
||||
|
||||
\draw[wire] (a) -- ([shift={(3, 0)}] a.center) node[qubit] {$\ket{1}$};
|
||||
\draw[wire] (b) -- ([shift={(3, 0)}] b.center) node[qubit] {$\ket{0}$};
|
||||
\draw[wire] (a) -- ([shift={(3, 0)}] a.center) node[qubit] {$[1]$};
|
||||
\draw[wire] (b) -- ([shift={(3, 0)}] b.center) node[qubit] {$[0]$};
|
||||
|
||||
\qubox{a}{1}{a}{2}{$X$}
|
||||
\qubox{b}{1}{b}{2}{$I$}
|
||||
\end{tikzpicture}
|
||||
\end{center}
|
||||
|
||||
We can even omit the $I$ gate, since we now know that transformations affect the whole state: \par
|
||||
We can even omit the $I$ gate. We know that transformations affect the whole state,
|
||||
and can assume the empty space uncer $X$ implies $I$. \par
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[scale=0.8]
|
||||
\node[qubit] (a) at (0, 0) {$\ket{0}$};
|
||||
\node[qubit] (b) at (0, -1) {$\ket{0}$};
|
||||
\node[qubit] (a) at (0, 0) {$[0]$};
|
||||
\node[qubit] (b) at (0, -1) {$[0]$};
|
||||
|
||||
\draw[wire] (a) -- ([shift={(3, 0)}] a.center) node[qubit] {$\ket{1}$};
|
||||
\draw[wire] (b) -- ([shift={(3, 0)}] b.center) node[qubit] {$\ket{0}$};
|
||||
\draw[wire] (a) -- ([shift={(3, 0)}] a.center) node[qubit] {$[1]$};
|
||||
\draw[wire] (b) -- ([shift={(3, 0)}] b.center) node[qubit] {$[0]$};
|
||||
|
||||
\qubox{a}{1}{a}{2}{$X$}
|
||||
\end{tikzpicture}
|
||||
|
@ -1,7 +1,7 @@
|
||||
\section{HXH}
|
||||
|
||||
Let's return to the quantum circuit diagrams we discussed a few pages ago. \par
|
||||
Keep in mind that we're working with quantum gates and proper half-qubits---not classical bits, as we were before.
|
||||
Keep in mind that we're working with quantum gates and proper qubits---not classical bits, as we were before.
|
||||
|
||||
\definition{Controlled Inputs}
|
||||
A \textit{control input} or \textit{inverted control input} may be attached to any gate. \par
|
||||
@ -289,7 +289,7 @@ $\ket{-} = \frac{1}{\sqrt{2}}\Bigl(\ket{0} - \ket{1}\Bigr)$
|
||||
\pagebreak
|
||||
|
||||
\generic{Remark:}
|
||||
Now, consider the following circuit:
|
||||
Consider the following circuit:
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[scale=0.8]
|
||||
@ -386,21 +386,21 @@ but the state $\ket{cd}$ on the right is $\ket{11} = [0,0,0,1]$. \par
|
||||
\vspace{4mm}
|
||||
|
||||
How does this make sense? \par
|
||||
Remember that a two-bit quantum state is \textit{not} equivalent to a pair of one-qubit quantum states.
|
||||
We must treat a multi-qubit state as a single unit.
|
||||
Remember that a two-bit quantum state is \textit{not} equivalent to a pair of disjoint one-qubit quantum states.
|
||||
We cannot treat a multi-qubit state as a combination of $n$ independent bits.
|
||||
|
||||
Recall that a two-bit state $\ket{ab}$ comes with four probabilities:
|
||||
$\mathcal{P}(\texttt{00})$, $\mathcal{P}(\texttt{01})$, $\mathcal{P}(\texttt{10})$, and $\mathcal{P}(\texttt{11})$.
|
||||
\vspace{2mm}
|
||||
|
||||
A two-bit state $\ket{ab}$ comes with four probabilities:
|
||||
$\mathcal{P}(\texttt{00})$, $\mathcal{P}(\texttt{01})$, $\mathcal{P}(\texttt{10})$, and $\mathcal{P}(\texttt{11})$. \par
|
||||
If we change the probabilities of only $\ket{a}$, \textit{all four of these change!}
|
||||
|
||||
|
||||
\vfill
|
||||
|
||||
Because of this fact, \say{controlled gates} may not work as you expect. They may seem
|
||||
to \say{read} their controlling qubit without affecting its state, but remember---a
|
||||
controlled gate still affects the \textit{entire} state. As we noted before, it is
|
||||
not possible to apply a transformation to one bit of a quantum state.
|
||||
|
||||
Because of this fact, \say{controlled gates} behave in a somewhat counterintuitive way.
|
||||
They do not simply \say{read} their controlling qubit without affecting its state---
|
||||
they mutate the entire state they are applied to, and may change all its bits!
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[scale=1]
|
||||
|
@ -12,7 +12,7 @@ Consider the following entangled two-qubit states, called the \textit{bell state
|
||||
The probabilistic bits we get when measuring any of the above may be called \textit{anticorrelated bits}. \par
|
||||
If we measure the first bit of any of these states and observe $1$, what is the resulting compound state? \par
|
||||
What if we observe $0$ instead? \par
|
||||
Do you see why we can call these bits anticorrelated?
|
||||
Do you see why we call these bits \say{anticorrelated}?
|
||||
|
||||
\vfill
|
||||
|
||||
|
@ -20,7 +20,7 @@
|
||||
= Bonus problems
|
||||
|
||||
#problem()
|
||||
Show that $x in ZZ^+$ has a multiplicative inverse mod $n$ iff $gcd(x, n) = 1$
|
||||
Show that $x in ZZ^+$ has a multiplicative inverse mod $n$ if and only if $gcd(x, n) = 1$
|
||||
|
||||
#v(1fr)
|
||||
|
||||
|
@ -45,7 +45,7 @@ How many permutations of $n$ objects are there?
|
||||
#v(1fr)
|
||||
|
||||
#problem()
|
||||
What map corresponds to the permutation that produces the array `312` from the array `123`?
|
||||
What map corresponds to the permutation that produces the array `231` from the array `123`?
|
||||
|
||||
#v(1fr)
|
||||
|
||||
|
@ -100,7 +100,7 @@ How about $[321][213][231]$? \
|
||||
Rewrite these compositions as one permutation in square brackets.
|
||||
|
||||
#solution([
|
||||
- $[1324][4321]$ is $[4321]$
|
||||
- $[1324][4321]$ is $[4231]$
|
||||
- $[321][213][231]$ is $[123]$
|
||||
])
|
||||
|
||||
@ -501,7 +501,7 @@ List all other ways to write this cycle. \
|
||||
|
||||
|
||||
#definition("Inverse")
|
||||
The _inverse_ of a permitation $f$ is a permutation $g$ that "un-does" $f$. \
|
||||
The _inverse_ of a permutation $f$ is a permutation $g$ that "un-does" $f$. \
|
||||
This means that $g(f(x)) = x$ for all $x$.
|
||||
|
||||
#problem()
|
||||
@ -550,7 +550,7 @@ Show that any cycle $(123...n)$ is equal to the product $(12)(23)...(n-1, n)$.
|
||||
Write $(7126453)$ as a product of transpositions. \
|
||||
|
||||
#solution[
|
||||
Move elements one at a time, and using the last position as temporary storage.
|
||||
Move elements one at a time, using the last position as temporary storage.
|
||||
|
||||
We get $(71)(72)(76)(74)(75)(73)$.
|
||||
Other solutions are possible. \
|
||||
@ -589,7 +589,7 @@ Show that any permutation is a product of transpositions of the form $(1, k)$. \
|
||||
|
||||
|
||||
#problem(label: "oneplustrans")
|
||||
Show that any transposition $(a, b)$ is equal to the product $(a, a+1)(a+1, b)(a, a+1)$.
|
||||
Show that any transposition $(a, b)$ is equal to the product $(a, a+1)(a+1, b)(a, a+1)$ whenever $a + 1 != b$.
|
||||
|
||||
#solution[
|
||||
This is the same as @onetrans,
|
||||
|
@ -2,20 +2,16 @@
|
||||
#import "@preview/cetz:0.4.2"
|
||||
#import "../macros.typ": *
|
||||
|
||||
= Groups (review)
|
||||
= Groups
|
||||
|
||||
#definition()
|
||||
Before we continue, we must introduce a bit of notation:
|
||||
- $S_n$ is the set of permutations on $n$ objects.
|
||||
- $ZZ_n$ is the set of integers mod $n$.
|
||||
|
||||
- $ZZ_n^times$ is the set of integers mod $n$ with multiplicative inverses. \
|
||||
In other words, it is the set of integers smaller than $n$ and coprime to $n$.#footnote[We proved this in another handout, but you may take it as fact here.] \
|
||||
For example, $ZZ_12^times = {1, 5, 7, 11}$.
|
||||
|
||||
#problem()
|
||||
What are the elements of $S_3$? #hint[Use cycle notation] \
|
||||
How about $ZZ_17^times$?
|
||||
How about $ZZ_8$?
|
||||
|
||||
#v(1fr)
|
||||
|
||||
@ -47,6 +43,16 @@ What is the group with the fewest number of elements?
|
||||
Verifying that the trivial group is a group is trivial.
|
||||
]
|
||||
|
||||
|
||||
#definition()
|
||||
$ZZ_n^times$ is the set of integers mod $n$ with multiplicative inverses. \
|
||||
We can prove that this is the set of integers smaller than $n$ and coprime to $n$. \
|
||||
For example, $ZZ_12^times = {1, 5, 7, 11}$.
|
||||
|
||||
#problem()
|
||||
What are the elements of $ZZ^times_8$? \
|
||||
How about $ZZ^times_23$? #hint[23 is prime.]
|
||||
|
||||
#v(1fr)
|
||||
#pagebreak()
|
||||
|
||||
@ -66,8 +72,11 @@ Show that $S_n$ is a group under composition.
|
||||
|
||||
#problem()
|
||||
Let $(G, *)$ be a group with finitely many elements, and let $a in G$. \
|
||||
Show that there is an $n$ in $in ZZ^+$ so that $a^n = e$ \
|
||||
#hint[$a^n = a * a * ... * a$ repeated $n$ times.]
|
||||
Show that there is an $n$ in $in ZZ$ so that $a^n = e$ \
|
||||
#hint[
|
||||
$a^n = a * a * ... * a$ repeated $n$ times. \
|
||||
$a^(-n) = a^(-1) * a^(-1) * ... * a^(-1)$, where $a^(-1)$ is the inverse of $a$. \
|
||||
]
|
||||
|
||||
#v(2mm)
|
||||
|
||||
@ -111,7 +120,7 @@ Then, find all generators of $(ZZ_5, +)$
|
||||
How many groups have only one generator?
|
||||
|
||||
#solution[
|
||||
Only one: the trivial group. The inverse of a generator is also a generator!
|
||||
Two: the trivial group and $(ZZ_2, +)$.
|
||||
]
|
||||
|
||||
#v(1fr)
|
||||
|
81
src/Warm-Ups/Snakes/0.svg
Normal file
@ -0,0 +1,81 @@
|
||||
<svg class="typst-doc" viewBox="0 0 8.236633858267716 14.150551181102362" width="8.236633858267716pt" height="14.150551181102362pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:h5="http://www.w3.org/1999/xhtml">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 2.2237677165354333)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000007867722 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(-0.00000003149606268881308 2.2237676220472435)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(4.282303149606299 8.46992125984252)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(4.282303007874017 8.46992125984252)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(4.282303149606299 0)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(4.282303007874017 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<defs id="glyph">
|
||||
<symbol id="gB0C69879DCB2DFE01E1A8092C6399B95" overflow="visible">
|
||||
<path d="M 1.54 0.253 C 1.54 -0.594 1.375 -1.892 1.067 -1.892 C 0.88 -1.892 0.726 -1.551 0.429 -1.551 C 0.22 -1.551 0 -1.738 0 -1.958 C 0 -2.233 0.242 -2.431 0.594 -2.431 C 1.6719999 -2.431 2.376 -1.43 2.376 1.925 L 2.376 3.234 C 2.376 3.927 2.332 4.719 2.332 5.269 C 2.332 6.732 2.552 7.139 2.783 7.139 C 3.047 7.139 3.069 6.776 3.421 6.776 C 3.685 6.776 3.905 6.963 3.905 7.205 C 3.905 7.48 3.641 7.678 3.322 7.678 C 2.156 7.678 1.518 6.446 1.518 3.74 L 1.518 2.299 C 1.518 1.419 1.54 1.133 1.54 0.253 Z "/>
|
||||
</symbol>
|
||||
<symbol id="gDCE911778D5C1849302153FEF2645F85" overflow="visible">
|
||||
<path d="M 1.9388977 -0.08503937 C 2.593701 -0.08503937 3.5886614 0.57826775 3.5886614 2.576693 C 3.5886614 3.4185827 3.384567 4.1414175 3.0103939 4.634646 C 2.7892914 4.9322834 2.432126 5.187402 1.9729134 5.187402 C 1.1310236 5.187402 0.33165354 4.183937 0.33165354 2.5001576 C 0.33165354 1.5902363 0.61228347 0.73984253 1.08 0.272126 C 1.3181102 0.03401575 1.6072441 -0.08503937 1.9388977 -0.08503937 Z M 1.9729134 4.889764 C 2.1174803 4.889764 2.2535434 4.8387403 2.3555906 4.745197 C 2.6192126 4.5240946 2.848819 3.8777955 2.848819 2.7382677 C 2.848819 1.9559056 2.823307 1.4201576 2.704252 0.9864567 C 2.5171654 0.28913388 2.1004725 0.21259843 1.9474016 0.21259843 C 1.1565355 0.21259843 1.0714961 1.6667717 1.0714961 2.4066143 C 1.0714961 4.498583 1.5902363 4.889764 1.9729134 4.889764 Z "/>
|
||||
</symbol>
|
||||
<symbol id="g642BCE8B7105B32AF084522D60B4E652" overflow="visible">
|
||||
<path d="M 2.4491339 1.0374804 L 2.4491339 3.9883466 C 2.4491339 4.498583 2.4576378 5.017323 2.4746456 5.127874 C 2.4746456 5.170394 2.4576378 5.170394 2.4236221 5.170394 C 1.9559056 4.88126 1.5051969 4.6686616 0.7568504 4.32 C 0.7738583 4.2264566 0.807874 4.1414175 0.8844095 4.0903935 C 1.2755905 4.2519684 1.4626772 4.3029923 1.624252 4.3029923 C 1.768819 4.3029923 1.7943307 4.098898 1.7943307 3.809764 L 1.7943307 1.0374804 C 1.7943307 0.33165354 1.5647244 0.28913388 0.96944886 0.26362205 C 0.9184252 0.21259843 0.9184252 0.03401575 0.96944886 -0.017007874 C 1.3861418 -0.008503937 1.6922835 0 2.1514962 0 C 2.559685 0 2.7637796 -0.008503937 3.1889765 -0.017007874 C 3.24 0.03401575 3.24 0.21259843 3.1889765 0.26362205 C 2.593701 0.28913388 2.4491339 0.33165354 2.4491339 1.0374804 Z "/>
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 6.3 KiB |
161
src/Warm-Ups/Snakes/1.svg
Normal file
@ -0,0 +1,161 @@
|
||||
<svg class="typst-doc" viewBox="0 0 16.740570866141734 31.1584251968504" width="16.740570866141734pt" height="31.1584251968504pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:h5="http://www.w3.org/1999/xhtml">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 10.72770472440945)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000007867722 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(-0.00000003149606268881308 10.72770462992126)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(8.503937007874017 19.231641732283467)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(8.50393697637795 19.231641637795278)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(12.786240157480314 25.477795275590555)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(12.786240015748032 25.47779527559056)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(12.786240157480314 17.007874015748037)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(12.786240015748032 17.007874015748033)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(8.503937007874017 2.2237677165354355)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(8.50393697637795 2.2237676220472453)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(12.786240157480314 8.469921259842522)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(12.786240015748032 8.46992125984252)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(12.786240157480314 0)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(12.786240015748032 0.0000000000000004475859752819529)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<defs id="glyph">
|
||||
<symbol id="gB0C69879DCB2DFE01E1A8092C6399B95" overflow="visible">
|
||||
<path d="M 1.54 0.253 C 1.54 -0.594 1.375 -1.892 1.067 -1.892 C 0.88 -1.892 0.726 -1.551 0.429 -1.551 C 0.22 -1.551 0 -1.738 0 -1.958 C 0 -2.233 0.242 -2.431 0.594 -2.431 C 1.6719999 -2.431 2.376 -1.43 2.376 1.925 L 2.376 3.234 C 2.376 3.927 2.332 4.719 2.332 5.269 C 2.332 6.732 2.552 7.139 2.783 7.139 C 3.047 7.139 3.069 6.776 3.421 6.776 C 3.685 6.776 3.905 6.963 3.905 7.205 C 3.905 7.48 3.641 7.678 3.322 7.678 C 2.156 7.678 1.518 6.446 1.518 3.74 L 1.518 2.299 C 1.518 1.419 1.54 1.133 1.54 0.253 Z "/>
|
||||
</symbol>
|
||||
<symbol id="gDCE911778D5C1849302153FEF2645F85" overflow="visible">
|
||||
<path d="M 1.9388977 -0.08503937 C 2.593701 -0.08503937 3.5886614 0.57826775 3.5886614 2.576693 C 3.5886614 3.4185827 3.384567 4.1414175 3.0103939 4.634646 C 2.7892914 4.9322834 2.432126 5.187402 1.9729134 5.187402 C 1.1310236 5.187402 0.33165354 4.183937 0.33165354 2.5001576 C 0.33165354 1.5902363 0.61228347 0.73984253 1.08 0.272126 C 1.3181102 0.03401575 1.6072441 -0.08503937 1.9388977 -0.08503937 Z M 1.9729134 4.889764 C 2.1174803 4.889764 2.2535434 4.8387403 2.3555906 4.745197 C 2.6192126 4.5240946 2.848819 3.8777955 2.848819 2.7382677 C 2.848819 1.9559056 2.823307 1.4201576 2.704252 0.9864567 C 2.5171654 0.28913388 2.1004725 0.21259843 1.9474016 0.21259843 C 1.1565355 0.21259843 1.0714961 1.6667717 1.0714961 2.4066143 C 1.0714961 4.498583 1.5902363 4.889764 1.9729134 4.889764 Z "/>
|
||||
</symbol>
|
||||
<symbol id="g642BCE8B7105B32AF084522D60B4E652" overflow="visible">
|
||||
<path d="M 2.4491339 1.0374804 L 2.4491339 3.9883466 C 2.4491339 4.498583 2.4576378 5.017323 2.4746456 5.127874 C 2.4746456 5.170394 2.4576378 5.170394 2.4236221 5.170394 C 1.9559056 4.88126 1.5051969 4.6686616 0.7568504 4.32 C 0.7738583 4.2264566 0.807874 4.1414175 0.8844095 4.0903935 C 1.2755905 4.2519684 1.4626772 4.3029923 1.624252 4.3029923 C 1.768819 4.3029923 1.7943307 4.098898 1.7943307 3.809764 L 1.7943307 1.0374804 C 1.7943307 0.33165354 1.5647244 0.28913388 0.96944886 0.26362205 C 0.9184252 0.21259843 0.9184252 0.03401575 0.96944886 -0.017007874 C 1.3861418 -0.008503937 1.6922835 0 2.1514962 0 C 2.559685 0 2.7637796 -0.008503937 3.1889765 -0.017007874 C 3.24 0.03401575 3.24 0.21259843 3.1889765 0.26362205 C 2.593701 0.28913388 2.4491339 0.33165354 2.4491339 1.0374804 Z "/>
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 11 KiB |
401
src/Warm-Ups/Snakes/2.svg
Normal file
@ -0,0 +1,401 @@
|
||||
<svg class="typst-doc" viewBox="0 0 33.74844488188977 65.17417322834645" width="33.74844488188977pt" height="65.17417322834645pt" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:h5="http://www.w3.org/1999/xhtml">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 27.73557874015748)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000007867722 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(-0.00000003149606268881308 27.735578645669285)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(8.503937007874017 36.239515748031494)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(8.50393697637795 36.23951565354331)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(17.007874015748033 44.743452755905516)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000031470889 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(17.007873984251972 44.74345266141732)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(25.511811023622048 53.24738976377953)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000031470889 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(25.511810992125987 53.24738966929133)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 59.493543307086625)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 59.49354330708661)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 51.023622047244096)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 51.023622047244096)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(25.511811023622048 36.239515748031494)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000031470889 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(25.511810992125987 36.23951565354331)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 42.48566929133859)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 42.485669291338574)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 34.01574803149607)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 34.01574803149607)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(12.786240157480314 34.01574803149607)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(12.786240015748032 34.01574803149607)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(8.503937007874017 19.231641732283467)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(8.50393697637795 19.231641637795278)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(12.786240157480314 25.477795275590555)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(12.786240015748032 25.477795275590555)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(17.007874015748033 10.727704724409453)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000031470889 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(17.007873984251972 10.72770462992126)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(25.511811023622048 19.231641732283467)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000031470889 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(25.511810992125987 19.231641637795278)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 25.477795275590555)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 25.477795275590555)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 17.007874015748033)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 17.007874015748033)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(25.511811023622048 2.2237677165354355)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 4.015 0 L 4.015 9.669 L 0.0000000000000031470889 9.669 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(25.511810992125987 2.2237676220472435)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 7.238)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gB0C69879DCB2DFE01E1A8092C6399B95" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 8.469921259842522)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6806297 L 0 5.6806297 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 8.46992125984252)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#gDCE911778D5C1849302153FEF2645F85" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g transform="translate(29.79411417322835 0)">
|
||||
<path class="typst-shape" fill="none" d="M 0 0 L 3.9543307 0 L 3.9543307 5.6125984 L 0 5.6125984 L 0 0 Z "/>
|
||||
</g>
|
||||
<g transform="translate(29.794114031496065 -0.0000000000000008951719505639057)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 0)">
|
||||
<g class="typst-group">
|
||||
<g>
|
||||
<g transform="translate(0 5.595590551181102)">
|
||||
<g class="typst-text" transform="scale(1, -1)">
|
||||
<use xlink:href="#g642BCE8B7105B32AF084522D60B4E652" x="0" y="0" fill="#000000" fill-rule="nonzero"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<defs id="glyph">
|
||||
<symbol id="gB0C69879DCB2DFE01E1A8092C6399B95" overflow="visible">
|
||||
<path d="M 1.54 0.253 C 1.54 -0.594 1.375 -1.892 1.067 -1.892 C 0.88 -1.892 0.726 -1.551 0.429 -1.551 C 0.22 -1.551 0 -1.738 0 -1.958 C 0 -2.233 0.242 -2.431 0.594 -2.431 C 1.6719999 -2.431 2.376 -1.43 2.376 1.925 L 2.376 3.234 C 2.376 3.927 2.332 4.719 2.332 5.269 C 2.332 6.732 2.552 7.139 2.783 7.139 C 3.047 7.139 3.069 6.776 3.421 6.776 C 3.685 6.776 3.905 6.963 3.905 7.205 C 3.905 7.48 3.641 7.678 3.322 7.678 C 2.156 7.678 1.518 6.446 1.518 3.74 L 1.518 2.299 C 1.518 1.419 1.54 1.133 1.54 0.253 Z "/>
|
||||
</symbol>
|
||||
<symbol id="gDCE911778D5C1849302153FEF2645F85" overflow="visible">
|
||||
<path d="M 1.9388977 -0.08503937 C 2.593701 -0.08503937 3.5886614 0.57826775 3.5886614 2.576693 C 3.5886614 3.4185827 3.384567 4.1414175 3.0103939 4.634646 C 2.7892914 4.9322834 2.432126 5.187402 1.9729134 5.187402 C 1.1310236 5.187402 0.33165354 4.183937 0.33165354 2.5001576 C 0.33165354 1.5902363 0.61228347 0.73984253 1.08 0.272126 C 1.3181102 0.03401575 1.6072441 -0.08503937 1.9388977 -0.08503937 Z M 1.9729134 4.889764 C 2.1174803 4.889764 2.2535434 4.8387403 2.3555906 4.745197 C 2.6192126 4.5240946 2.848819 3.8777955 2.848819 2.7382677 C 2.848819 1.9559056 2.823307 1.4201576 2.704252 0.9864567 C 2.5171654 0.28913388 2.1004725 0.21259843 1.9474016 0.21259843 C 1.1565355 0.21259843 1.0714961 1.6667717 1.0714961 2.4066143 C 1.0714961 4.498583 1.5902363 4.889764 1.9729134 4.889764 Z "/>
|
||||
</symbol>
|
||||
<symbol id="g642BCE8B7105B32AF084522D60B4E652" overflow="visible">
|
||||
<path d="M 2.4491339 1.0374804 L 2.4491339 3.9883466 C 2.4491339 4.498583 2.4576378 5.017323 2.4746456 5.127874 C 2.4746456 5.170394 2.4576378 5.170394 2.4236221 5.170394 C 1.9559056 4.88126 1.5051969 4.6686616 0.7568504 4.32 C 0.7738583 4.2264566 0.807874 4.1414175 0.8844095 4.0903935 C 1.2755905 4.2519684 1.4626772 4.3029923 1.624252 4.3029923 C 1.768819 4.3029923 1.7943307 4.098898 1.7943307 3.809764 L 1.7943307 1.0374804 C 1.7943307 0.33165354 1.5647244 0.28913388 0.96944886 0.26362205 C 0.9184252 0.21259843 0.9184252 0.03401575 0.96944886 -0.017007874 C 1.3861418 -0.008503937 1.6922835 0 2.1514962 0 C 2.559685 0 2.7637796 -0.008503937 3.1889765 -0.017007874 C 3.24 0.03401575 3.24 0.21259843 3.1889765 0.26362205 C 2.593701 0.28913388 2.4491339 0.33165354 2.4491339 1.0374804 Z "/>
|
||||
</symbol>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 26 KiB |
1121
src/Warm-Ups/Snakes/3.svg
Normal file
After Width: | Height: | Size: 68 KiB |
3281
src/Warm-Ups/Snakes/4.svg
Normal file
After Width: | Height: | Size: 196 KiB |
9761
src/Warm-Ups/Snakes/5.svg
Normal file
After Width: | Height: | Size: 579 KiB |
29201
src/Warm-Ups/Snakes/6.svg
Normal file
After Width: | Height: | Size: 1.7 MiB |
87521
src/Warm-Ups/Snakes/7.svg
Normal file
After Width: | Height: | Size: 5.1 MiB |
89
src/Warm-Ups/Snakes/main.typ
Normal file
@ -0,0 +1,89 @@
|
||||
#import "@local/handout:0.1.0": *
|
||||
#import "@preview/cetz:0.4.2"
|
||||
|
||||
#show: handout.with(
|
||||
title: [Warm-Up: Snakes!],
|
||||
by: "Mark",
|
||||
page_numbers: false,
|
||||
)
|
||||
|
||||
#box(place(box(width: 100%, height: 8in, align(horizon, image(
|
||||
"7.svg",
|
||||
width: 360mm,
|
||||
)))))
|
||||
|
||||
#problem()
|
||||
Evaluate this integral. \
|
||||
All integrals are of the form $integral_a^b 1 #h(1mm) d x$.
|
||||
|
||||
#if_solutions(pagebreak())
|
||||
|
||||
#solution[
|
||||
This integral is drawn recursively with the following code: \
|
||||
|
||||
#v(2mm)
|
||||
|
||||
#let snake(depth, x, y) = {
|
||||
if depth == 0 {
|
||||
math.attach(math.integral, br: x, tr: y)
|
||||
} else {
|
||||
let bot = snake(depth - 1, x, "1")
|
||||
let top = snake(depth - 1, "0", y)
|
||||
snake(depth - 1, bot, top)
|
||||
}
|
||||
}
|
||||
|
||||
```typst
|
||||
#let snake(depth, x, y) = {
|
||||
if depth == 0 {
|
||||
$integral_#x ^#y$
|
||||
} else {
|
||||
let bot = snake(depth - 1, x, "1")
|
||||
let top = snake(depth - 1, "0", y)
|
||||
snake(depth - 1, bot, top)
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#v(5mm)
|
||||
|
||||
For example:
|
||||
|
||||
$ snake\(0, x, y) = #snake(0, "x", "y") $
|
||||
|
||||
#v(2mm)
|
||||
|
||||
$ snake\(1, x, y) = #snake(1, "x", "y") $
|
||||
|
||||
#v(2mm)
|
||||
|
||||
$ snake\(2, x, y) = #snake(2, "x", "y") $
|
||||
|
||||
In other words, we want $f_7 (0, 1)$, where...
|
||||
- $f_0(x, y) := integral_x^y$
|
||||
- $f_(n+1)(x, y) := f_n [f_n (x, 1), f_n (0, y)]$
|
||||
|
||||
#v(5mm)
|
||||
Expanding a few iterations, we find:
|
||||
- $f_0(x, y) = integral_x^y = y-x$
|
||||
- $f_1(x, y) = f_0 [f_0 (x, 1), f_0 (0, y)] = y+x-1$
|
||||
- $f_2(x, y) = f_1 [f_1 (x, 1), f_1 (0, y)] = y+x-2$
|
||||
|
||||
#v(5mm)
|
||||
|
||||
We can use induction to show that this pattern continues. \
|
||||
If $g_n = y+x+c$, then $g_(n+1) = y+x+(3c+1)$.
|
||||
|
||||
|
||||
#v(5mm)
|
||||
Finally, use this recusion to find that
|
||||
$f_0, f_1, ..., f_7 = 1, 0, -1, -4, -13, -40, -121, -364$
|
||||
|
||||
One can also find an explicit formula for $g_n$:
|
||||
|
||||
$
|
||||
f_(n+1) = g_n & = x + y + 3^n c + 3^0 + 3^1 + ... + 3^n \
|
||||
& = x + y + 3^n c + sum_(i=0)^n 3^i \
|
||||
& = x + y + 3^n c + (3^(n+1) + 1)/2
|
||||
$
|
||||
]
|
6
src/Warm-Ups/Snakes/meta.toml
Normal file
@ -0,0 +1,6 @@
|
||||
[metadata]
|
||||
title = "Snakes!"
|
||||
|
||||
[publish]
|
||||
handout = true
|
||||
solutions = true
|
57
src/Warm-Ups/Snakes/svg.typ
Normal file
@ -0,0 +1,57 @@
|
||||
#import "@preview/cetz:0.4.2"
|
||||
|
||||
// Compile with:
|
||||
// typst compile --package-path "../../../lib/typst/" svg.typ --format svg
|
||||
// You'll need to recompile typst with a higher recursion limit.
|
||||
|
||||
#set page(
|
||||
fill: none,
|
||||
width: auto,
|
||||
height: auto,
|
||||
margin: 0mm,
|
||||
);
|
||||
|
||||
#let cetz_snake(depth, b, t) = {
|
||||
import cetz.draw: *
|
||||
|
||||
if depth == 0 {
|
||||
content((0, 0), math.inline(math.integral))
|
||||
|
||||
group({
|
||||
translate(x: 0.15, y: -0.15)
|
||||
b
|
||||
})
|
||||
|
||||
group({
|
||||
translate(x: 0.15, y: 0.15)
|
||||
t
|
||||
})
|
||||
} else {
|
||||
let bot = group({
|
||||
translate(x: 0.15, y: -0.15)
|
||||
cetz_snake(depth - 1, b, content((0, 0), text("1", size: 3mm)))
|
||||
})
|
||||
|
||||
let top = group({
|
||||
translate(x: 0.15, y: 0.15)
|
||||
cetz_snake(depth - 1, content((0, 0), text("0", size: 3mm)), t)
|
||||
})
|
||||
|
||||
cetz_snake(depth - 1, bot, top)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#{
|
||||
import cetz.draw: *
|
||||
|
||||
// any bigger than 7 overflows the stack.
|
||||
// any bigger than 5 exceeds typst's recursion limit.
|
||||
// You'll have to increase those limits and recompile to
|
||||
// build this document.
|
||||
let depth = 7
|
||||
|
||||
let b = content((0, 0), text("0", size: 3mm))
|
||||
let t = content((0, 0), text("1", size: 3mm))
|
||||
cetz.canvas(cetz_snake(depth, b, t))
|
||||
};
|