Created
November 21, 2020 14:11
-
-
Save neila/1e90bf1169f85b33943b594584c5742f to your computer and use it in GitHub Desktop.
text encryption using simple matrix calculations
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(* Content-type: application/vnd.wolfram.mathematica *) | |
(*** Wolfram Notebook File ***) | |
(* http://www.wolfram.com/nb *) | |
(* CreatedBy='Mathematica 11.3' *) | |
(*CacheID: 234*) | |
(* Internal cache information: | |
NotebookFileLineBreakTest | |
NotebookFileLineBreakTest | |
NotebookDataPosition[ 158, 7] | |
NotebookDataLength[ 188939, 4701] | |
NotebookOptionsPosition[ 178212, 4510] | |
NotebookOutlinePosition[ 178658, 4528] | |
CellTagsIndexPosition[ 178615, 4525] | |
WindowFrame->Normal*) | |
(* Beginning of Notebook Content *) | |
Notebook[{ | |
Cell[CellGroupData[{ | |
Cell["matrix characteristics", "Section", | |
CellChangeTimes->{{3.757666274051058*^9, 3.757666274763125*^9}, { | |
3.757666308640744*^9, 3.757666345699779*^9}, {3.814955369562101*^9, | |
3.814955371077177*^9}, {3.814955642753479*^9, | |
3.814955648086821*^9}},ExpressionUUID->"fd8544d6-1909-4b25-9659-\ | |
cd19eeb208bb"], | |
Cell[CellGroupData[{ | |
Cell["M1 and M2 are row-equivalent.", "Subsection", | |
CellChangeTimes->{{3.757666355272155*^9, 3.757666378960547*^9}, { | |
3.814955377367923*^9, | |
3.81495538370278*^9}},ExpressionUUID->"cd0aff72-5c8a-44d3-8cb3-\ | |
dbab95b01f94"], | |
Cell[BoxData[{ | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{ | |
SubscriptBox["M", "1"], "=", | |
RowBox[{"(", GridBox[{ | |
{"0", "1", | |
RowBox[{"-", "3"}], "2"}, | |
{"3", "0", "6", "3"}, | |
{"4", | |
RowBox[{"-", "1"}], "11", "2"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], ",", | |
RowBox[{ | |
SubscriptBox["M", "2"], "=", | |
RowBox[{"(", GridBox[{ | |
{"3", | |
RowBox[{"-", "1"}], "9", "1"}, | |
{"0", "5", | |
RowBox[{"-", "15"}], "10"}, | |
{"1", "0", "2", "1"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}]}], "\n"}], | |
TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"Solution", ":", " ", | |
RowBox[{"We", " ", "can", " ", "conduct", " ", | |
StyleBox["a", | |
FontSlant->"Plain"], " ", "series", " ", "of", " ", "elementary", " ", | |
"row", " ", "operations", " ", "on", " ", | |
FormBox[ | |
SubscriptBox["M", "1"], | |
TraditionalForm], " ", "to", " ", "obtain", " ", | |
FormBox[ | |
RowBox[{ | |
SubscriptBox["M", "2"], "."}], | |
TraditionalForm]}]}], "\[IndentingNewLine]"}], TraditionalForm], "\n", | |
FormBox[ | |
RowBox[{"1.", " ", "Multiply", " ", "row", " ", "1", " ", "by", " ", "5."}], | |
TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
SubscriptBox["M", | |
SubscriptBox["1", "2"]], "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"0", "5", | |
RowBox[{"-", "15"}], "10"}, | |
{"3", "0", "6", "3"}, | |
{"4", | |
RowBox[{"-", "1"}], "11", "2"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
"\[IndentingNewLine]"}], TraditionalForm], "\n", | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"2.", " ", "Multiple", " ", "row", " ", "2", " ", "by", " ", | |
RowBox[{ | |
FormBox[ | |
FractionBox["1", "3"], | |
TraditionalForm], ".", "\n", | |
SubscriptBox["M", | |
SubscriptBox["1", "3"]]}]}], "=", | |
RowBox[{"(", GridBox[{ | |
{"0", "5", | |
RowBox[{"-", "15"}], "10"}, | |
{"1", "0", "2", "1"}, | |
{"4", | |
RowBox[{"-", "1"}], "11", "2"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], | |
"\[IndentingNewLine]"}], TraditionalForm], "\n", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"3.", " ", "Add"}], " ", "-", | |
RowBox[{"1", "\[Times]", | |
RowBox[{"(", | |
RowBox[{"row", " ", "2"}], ")"}], " ", "to", " ", "row", " ", "3."}]}], | |
TraditionalForm], "\n", | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
SubscriptBox["M", | |
SubscriptBox["1", "4"]], "=", | |
RowBox[{"(", GridBox[{ | |
{"0", "5", | |
RowBox[{"-", "15"}], "10"}, | |
{"1", "0", "2", "1"}, | |
{"3", | |
RowBox[{"-", "1"}], "9", "1"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], | |
"\[IndentingNewLine]"}], TraditionalForm], "\n", | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{ | |
"4.", " ", "Swap", " ", "row", " ", "orders", " ", "to", " ", "match", | |
" ", | |
RowBox[{ | |
FormBox[ | |
SubscriptBox["M", "2"], | |
TraditionalForm], ".", "\n", | |
SubscriptBox["M", | |
SubscriptBox["1", "5"]]}]}], "=", | |
RowBox[{"(", GridBox[{ | |
{"3", | |
RowBox[{"-", "1"}], "9", "1"}, | |
{"0", "5", | |
RowBox[{"-", "15"}], "10"}, | |
{"1", "0", "2", "1"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], | |
"\[IndentingNewLine]"}], TraditionalForm], "\n", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"At", " ", "this", " ", "point"}], ",", " ", | |
RowBox[{ | |
FormBox[ | |
SubscriptBox["M", | |
SubscriptBox["1", "5"]], | |
TraditionalForm], "=", " ", | |
RowBox[{ | |
RowBox[{ | |
FormBox[ | |
SubscriptBox["M", "2"], | |
TraditionalForm], ".", " ", "Since"}], " ", | |
FormBox[ | |
SubscriptBox["M", | |
SubscriptBox["1", "5"]], | |
TraditionalForm], " ", "is", " ", | |
StyleBox["a", | |
FontSlant->"Plain"], " ", "result", " ", "of", " ", | |
StyleBox["a", | |
FontSlant->"Plain"], " ", "series", " ", "of", " ", "elementary", " ", | |
"row", " ", "operations", " ", "on", " ", | |
FormBox[ | |
SubscriptBox["M", "1"], | |
TraditionalForm]}]}], ",", " ", | |
RowBox[{ | |
RowBox[{"it", " ", "is", " ", "shown", " ", "that", " ", | |
FormBox[ | |
SubscriptBox["M", "1"], | |
TraditionalForm], " ", "and", " ", | |
FormBox[ | |
SubscriptBox["M", "2"], | |
TraditionalForm], " ", "are", " ", "row"}], "-", | |
RowBox[{"equivalent", "."}]}]}], TraditionalForm]}], "Input", | |
CellChangeTimes->{{3.757666594167828*^9, 3.757666658223991*^9}, { | |
3.758156993471949*^9, 3.7581571175133343`*^9}}, | |
FontWeight->"Plain",ExpressionUUID->"b0c69a89-e41f-4462-b682-141ee72fb0a9"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[TextData[{ | |
StyleBox["Removing the third column of each matrix gives matrices ", | |
"Subsection"], | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "1"], TraditionalForm]],ExpressionUUID-> | |
"f3cf983d-1f8b-42f6-88d6-8371d7006e60"], | |
" and ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "2"], TraditionalForm]],ExpressionUUID-> | |
"4fdfb9e1-6af2-4e4c-9323-69287623537d"], | |
"; these are also row equivalent. If we remove the fourth column instead, \ | |
the resulting matrices are also row-equivalent." | |
}], "Subsection", | |
CellChangeTimes->{{3.757667290785943*^9, 3.7576673393248177`*^9}, { | |
3.757667434936275*^9, 3.757667493344942*^9}, {3.81495541774649*^9, | |
3.8149554352509727`*^9}},ExpressionUUID->"092998ee-98fb-457e-a1ee-\ | |
f1bc6fc235fd"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
SubscriptBox["N", "1"], "=", | |
RowBox[{"(", GridBox[{ | |
{"0", "1", "2"}, | |
{"3", "0", "3"}, | |
{"4", | |
RowBox[{"-", "1"}], "2"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}], ",", | |
RowBox[{ | |
SubscriptBox["N", "2"], "=", | |
RowBox[{"(", GridBox[{ | |
{"3", | |
RowBox[{"-", "1"}], "1"}, | |
{"0", "5", "10"}, | |
{"1", "0", "1"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}]}]}], | |
TraditionalForm]], "Input", | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID->"98030549-e517-43ea-bbbc-a4b730310aa9"], | |
Cell[TextData[{ | |
StyleBox["I have demonstrated in section (a) that row-equivalent matrices \ | |
can ultimately be expressed as the same matrix through a series of elementary \ | |
row operations. This suggests that the row-equivalent matrices will have the \ | |
same reduced row echelon form (\[OpenCurlyDoubleQuote]RREF\ | |
\[CloseCurlyDoubleQuote] onwards). \nThis is simply because the RREF of a \ | |
matrix is obtained through a sequence of elementary row operations, which \ | |
means that the RREF of a given matrix is a row-equivalent of that matrix. \ | |
Therefore, if two matrices in RREF form are the same, it must be that they \ | |
are row-equivalent.\nThe computational tool used to compute the RREF of ", | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular"], | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "1"], TraditionalForm]], | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID-> | |
"85f6a067-5a66-4c8c-bfc3-55b2171b4d3b"], | |
StyleBox[" and ", | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular"], | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "2"], TraditionalForm]], | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID-> | |
"c512f235-9f28-4682-ba95-5b0fd0891f72"], | |
StyleBox[" is Wolfram Mathematica.", | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular"] | |
}], "Text", | |
CellChangeTimes->{{3.7576675041856337`*^9, 3.757667508927459*^9}, { | |
3.757667573721759*^9, 3.757667685904017*^9}, {3.75766783299478*^9, | |
3.757667839778089*^9}, {3.757668374862495*^9, | |
3.757668601460668*^9}},ExpressionUUID->"d94a9d92-4dca-41bc-9b3e-\ | |
6f7447a89e11"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(1 rref\)]\) = \>\"", ",", | |
RowBox[{"RowReduce", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"0", ",", "1", ",", "2"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"3", ",", "0", ",", "3"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"4", ",", | |
RowBox[{"-", "1"}], ",", "2"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(2 rref\)]\) = \>\"", ",", " ", | |
RowBox[{"RowReduce", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"3", ",", | |
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"0", ",", "5", ",", "10"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", "0", ",", "1"}], "}"}]}], "}"}], "]"}]}], | |
"]"}]}], "Input", | |
CellChangeTimes->{{3.757668649137601*^9, 3.757668703044943*^9}, { | |
3.75766899024612*^9, 3.757669031535162*^9}, {3.757669558905952*^9, | |
3.7576695633958673`*^9}}, | |
CellLabel->"In[1]:=",ExpressionUUID->"e9354c81-f591-48aa-928d-5ca4f694cdf3"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(1 rref\\)]\\) = \"\>", | |
"\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "0", "1"}, | |
{"0", "1", "2"}, | |
{"0", "0", "0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm[ | |
"\!\(\*SubscriptBox[\(N\), \(1 rref\)]\) = ", {{1, 0, 1}, {0, 1, 2}, {0, | |
0, 0}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(2 rref\\)]\\) = \"\>", | |
"\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "0", "1"}, | |
{"0", "1", "2"}, | |
{"0", "0", "0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm[ | |
"\!\(\*SubscriptBox[\(N\), \(2 rref\)]\) = ", {{1, 0, 1}, {0, 1, 2}, {0, | |
0, 0}}], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{ | |
3.758173493385878*^9, {3.758195989196024*^9, | |
3.758195996279559*^9}},ExpressionUUID->"79a5324a-ce77-4469-a1f7-\ | |
92ab6b031125"] | |
}, Open ]], | |
Cell[TextData[{ | |
"\[Therefore] ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "1"], TraditionalForm]],ExpressionUUID-> | |
"4b168efb-857b-422f-9e27-b343bb7d0ff7"], | |
" and ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "2"], TraditionalForm]],ExpressionUUID-> | |
"6eff33b4-1ed3-4fbf-9dc4-35cccd7b1014"], | |
" are row equivalent to each other.\nNow go through the same procedure, this \ | |
time removing the fourth columns of ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["M", "1"], TraditionalForm]],ExpressionUUID-> | |
"386626de-2806-40df-8f3d-4024778c1690"], | |
" and ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["M", "2"], TraditionalForm]],ExpressionUUID-> | |
"8c0d3d4a-3701-4759-8a58-6762abd9180b"], | |
". I will call the matrices ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "3"], TraditionalForm]],ExpressionUUID-> | |
"c5ffcbad-ac78-4b1e-80ed-68d34d0b4c9f"], | |
" and ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "4"], TraditionalForm]],ExpressionUUID-> | |
"ff9cdc01-b98c-47c7-9345-19dca1af7c90"], | |
"." | |
}], "Text", | |
CellChangeTimes->{{3.7576690673373938`*^9, 3.75766910545312*^9}, { | |
3.7576692381755943`*^9, 3.7576692477559633`*^9}, {3.757669282382987*^9, | |
3.7576692923853073`*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"1740787f-7fc5-4328-af77-f1f5d801f02c"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(3 rref\)]\)= \>\"", ",", | |
RowBox[{"RowReduce", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"0", ",", "1", ",", | |
RowBox[{"-", "3"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"3", ",", "0", ",", "6"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"4", ",", | |
RowBox[{"-", "1"}], ",", "11"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<\!\(\*SubscriptBox[\(N\), \(4 rref\)]\)=\>\"", ",", " ", | |
RowBox[{"RowReduce", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"3", ",", | |
RowBox[{"-", "1"}], ",", "9"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"0", ",", "5", ",", | |
RowBox[{"-", "15"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", "0", ",", "2"}], "}"}]}], "}"}], "]"}]}], | |
"]"}]}], "Input", | |
CellChangeTimes->{{3.757669184919175*^9, 3.757669202989588*^9}, { | |
3.75766926013701*^9, 3.757669262918969*^9}}, | |
CellLabel->"In[3]:=",ExpressionUUID->"ecc091c2-b451-4218-9c79-ed695362eeee"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(3 rref\\)]\\)= \"\>", | |
"\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "0", "2"}, | |
{"0", "1", | |
RowBox[{"-", "3"}]}, | |
{"0", "0", "0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm[ | |
"\!\(\*SubscriptBox[\(N\), \(3 rref\)]\)= ", {{1, 0, 2}, {0, 1, -3}, {0, | |
0, 0}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"\\!\\(\\*SubscriptBox[\\(N\\), \\(4 rref\\)]\\)=\"\>", | |
"\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "0", "2"}, | |
{"0", "1", | |
RowBox[{"-", "3"}]}, | |
{"0", "0", "0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm[ | |
"\!\(\*SubscriptBox[\(N\), \(4 rref\)]\)=", {{1, 0, 2}, {0, 1, -3}, {0, 0, | |
0}}], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{ | |
3.75817350098744*^9, {3.7581959991750937`*^9, | |
3.758196006703977*^9}},ExpressionUUID->"2a66624f-9704-47c9-877f-\ | |
c88741f24d3b"] | |
}, Open ]], | |
Cell[TextData[{ | |
"Again, we see that ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "3"], TraditionalForm]],ExpressionUUID-> | |
"b5f3db0f-d5fc-469b-bd51-b5dd6e80cb2c"], | |
" and ", | |
Cell[BoxData[ | |
FormBox[ | |
SubscriptBox["N", "4"], TraditionalForm]],ExpressionUUID-> | |
"29e6a9b0-a69a-4567-b0fe-d31a81eaedf6"], | |
" are row equivalent to each other." | |
}], "Text", | |
CellChangeTimes->{{3.757669296666376*^9, 3.757669314322442*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"6514a758-edbc-4168-8464-8f9a05022bf1"], | |
Cell["\<\ | |
CONCLUSION] | |
Removing the same column from a pair equivalent matrices will affect row \ | |
equivalence of the two matrices. This is because elementary row operations \ | |
only affect within each column. Scaling is done uniformly across all columns. \ | |
Swapping happens between rows but not between columns. And finally, adding \ | |
multiples of rows are done within each column. An element from column 2 can \ | |
only be added to an element in a different row but the same column. \ | |
Therefore, removing the same column has no effect on the row equivalence of \ | |
the two matrices, as the remaining columns will go under row operations just \ | |
as it did before removal.\ | |
\>", "Text", | |
CellChangeTimes->{{3.757669583842907*^9, 3.7576698056431837`*^9}, { | |
3.814955469499749*^9, 3.814955485296386*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"f4deffad-1d70-4ec4-889f-f096f10022d9"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["What about rows? Example with matrix A", "Subsection", | |
CellChangeTimes->{{3.757669808726508*^9, 3.7576698650004168`*^9}, { | |
3.7580089710328836`*^9, 3.7580089757844563`*^9}, {3.814955498494958*^9, | |
3.814955501248962*^9}, {3.814955551473003*^9, | |
3.814955575035334*^9}},ExpressionUUID->"7f9ca359-e542-4596-988f-\ | |
cb8f1fdd5131"], | |
Cell[TextData[{ | |
"A = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "4", | |
RowBox[{"|", " ", "5"}]}, | |
{"2", "9", | |
RowBox[{"|", " ", | |
RowBox[{"-", "1"}]}]}, | |
{"4", "1", | |
RowBox[{"|", " ", "20"}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"e667ea81-b7e5-4834-8f43-9ed3e451f5ff"], | |
"\n\nSubtract row 1 from row 2:\nA = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "4", | |
RowBox[{"|", " ", "5"}]}, | |
{"0", "5", | |
RowBox[{"|", | |
RowBox[{"-", "6"}]}]}, | |
{"4", "1", | |
RowBox[{"|", "20"}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"296008b2-454a-491e-9cb2-ee96c1c02697"], | |
"\n\nSubtract 2\[Cross]row 1 from row 3:\nA = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "4", | |
RowBox[{"|", " ", "5"}]}, | |
{"0", "5", | |
RowBox[{"|", | |
RowBox[{"-", "6"}]}]}, | |
{"0", | |
RowBox[{"-", "7"}], | |
RowBox[{"|", "10"}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"9597d176-3815-4f5d-b6d4-b2ad2c6f1863"], | |
"\n\nAdd ", | |
Cell[BoxData[ | |
FormBox[ | |
FractionBox["7", "5"], TraditionalForm]],ExpressionUUID-> | |
"fad777b7-6821-4dc5-a101-6ee708f9f3fa"], | |
"\[Cross]row 2 to row 3:\nA = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "4", | |
RowBox[{"|", " ", "5"}]}, | |
{"0", "5", | |
RowBox[{"|", " ", | |
RowBox[{"-", "6"}]}]}, | |
{"0", "0", | |
RowBox[{"|", | |
FractionBox["142", "5"]}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"8a162fbd-7842-42c4-ba99-ebe2b59f35b5"], | |
"\n\nSince there are no solutions that satisfy 0\[Cross]x + 0\[Cross]y = ", | |
Cell[BoxData[ | |
FormBox[ | |
FractionBox["142", "5"], TraditionalForm]],ExpressionUUID-> | |
"b8f09bd7-9bb8-4052-ab22-980454726688"], | |
", we can say that the matrix has no solutions. " | |
}], "Text", | |
CellChangeTimes->{{3.758008447729747*^9, 3.758008551876182*^9}, { | |
3.758008615185186*^9, 3.758008704465727*^9}, {3.758008754355448*^9, | |
3.758008818601902*^9}, {3.758008882312051*^9, 3.758008887226696*^9}, { | |
3.758008922911252*^9, 3.7580089249536*^9}, {3.758008987634844*^9, | |
3.758009025001853*^9}, 3.758009057748555*^9, {3.758009473357815*^9, | |
3.758009557922113*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"b9b41390-d3bd-4c8d-be75-adf215da90d4"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["The effect of removing a row on row equivalence...", "Subsection", | |
CellChangeTimes->{{3.758008985220603*^9, 3.75800898625436*^9}, { | |
3.758009133722386*^9, 3.7580091601093187`*^9}, {3.814955565413628*^9, | |
3.814955590005814*^9}},ExpressionUUID->"dd11fafb-c20d-4785-88fc-\ | |
bc0af54c783b"], | |
Cell[TextData[{ | |
"We can remove the third row, for example.\nB = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "4", | |
RowBox[{"|", " ", "5"}]}, | |
{"2", "9", | |
RowBox[{"|", | |
RowBox[{"-", "1"}]}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"51a08c71-3304-45a3-b6f4-c9225301a810"], | |
"\n\nSubtract row 1 from row 2:\nB = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "4", | |
RowBox[{"|", " ", "5"}]}, | |
{"0", "5", | |
RowBox[{"|", | |
RowBox[{"-", "6"}]}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"ed3a6f19-34c2-4246-846e-a12a3edbfda3"], | |
"\n\nSubtract ", | |
Cell[BoxData[ | |
FormBox[ | |
FractionBox["4", "5"], TraditionalForm]],ExpressionUUID-> | |
"a3657e64-37c2-40ca-9bfe-d2c3802e1866"], | |
"\[Cross]row 2 from row 1:\nB = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"2", "0", | |
RowBox[{"|", | |
FractionBox["49", "5"]}]}, | |
{"0", "5", | |
RowBox[{"|", | |
RowBox[{"-", "6"}]}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"fbbf5592-a5e5-430c-ab7a-db44c3eebf71"], | |
"\n\nReduce each pivot columns to 1:\nB = ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", GridBox[{ | |
{"1", "0", | |
RowBox[{"|", " ", | |
FractionBox["49", "10"]}]}, | |
{"0", "1", | |
RowBox[{"|", | |
RowBox[{"-", | |
FractionBox["6", "5"]}]}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], ")"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"398f4883-5d7c-4f71-9c04-8e18fa95f19f"], | |
"\n\[LineSeparator]And we see that the augmented matrix now does have a \ | |
solution, which means it has an effect on the row equivalence." | |
}], "Text", | |
CellChangeTimes->{{3.75800918429642*^9, 3.758009355239842*^9}, { | |
3.758009410084978*^9, 3.758009469106436*^9}, {3.7580095620759153`*^9, | |
3.758009632820526*^9}, 3.758187651231024*^9}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"88dca3f2-6fa1-494b-9a71-3a8bd544e4c8"], | |
Cell[CellGroupData[{ | |
Cell["\<\ | |
Row equivalent augmented matrices have the same solution set.\ | |
\>", "Subsubsection", | |
CellChangeTimes->{{3.7580096974949713`*^9, 3.758009710309943*^9}, | |
3.814955605343485*^9},ExpressionUUID->"f7afa4cc-bb1e-4a21-8e8f-\ | |
2dc3754a20a0"], | |
Cell["\<\ | |
Since they are row equivalent, the RREF form will be the same and thus can be \ | |
understood as having the same solution set.\ | |
\>", "Text", | |
CellChangeTimes->{{3.7580097158086233`*^9, 3.7580097713001013`*^9}, { | |
3.81495560931925*^9, 3.81495560957547*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"45533c61-90b1-4077-93e6-5399f908f90f"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["\<\ | |
Augmented matrices with the same solution set are row equivalent.\ | |
\>", "Subsubsection", | |
CellChangeTimes->{{3.7580097739156647`*^9, 3.758009788249487*^9}, | |
3.814955606543252*^9},ExpressionUUID->"56efd40e-170a-42f7-9958-\ | |
c969378d750b"], | |
Cell[TextData[{ | |
"Since same solution set implies that the RREF form of the augmented \ | |
matrices are the same; thus is row equivalent and can be transformed into \ | |
each other using only elementary row operations.\n\nThis also means that two \ | |
matrices have the same solution set ", | |
StyleBox["if and only if", | |
FontWeight->"Bold"], | |
" they are row equivalent." | |
}], "Text", | |
CellChangeTimes->{{3.7580097943000183`*^9, 3.758009862283033*^9}, { | |
3.814955612344398*^9, 3.8149556280383472`*^9}}, | |
FontFamily->"Times", | |
FontWeight->"Regular",ExpressionUUID->"611b804c-6957-4108-bc48-14a182c8fe0f"] | |
}, Open ]] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[TextData[StyleBox["traffic matrix", | |
FontSlant->"Italic"]], "Section", | |
CellChangeTimes->{{3.758009919161749*^9, 3.758009932047393*^9}, { | |
3.814955637080202*^9, | |
3.814955662265361*^9}},ExpressionUUID->"f66fbda0-3f3f-4cea-9521-\ | |
8bbbfd3e8f05"], | |
Cell[TextData[{ | |
"First, as we do not know the traffic in between each roundabout so it is \ | |
sensible to make them into variables. The visualization below shows the \ | |
variable names and the roads I assigned them to.\n", | |
Cell[BoxData[ | |
GraphicsBox[ | |
TagBox[RasterBox[CompressedData[" | |
1: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 | |
yA9AMMgPgP/IDwDgHfkBCAb5AfAf+QEAvCM/AMEgPwD+Iz8AgHfkByAY5AfA | |
f+QHAPCO/AAEg/wA+I/8AADekR+AYJAfAP+RHwDAO/IDEAzyQ+4NfbDYuvYL | |
p3WNeK4k6B8XPiA/AIB35AcgGOSH3JvwWZnd+nCx7dY5ZGs3T35dPKQo6B8X | |
PiA/AIB35AcgGOQH/8yYXWENDyU/gPwAANlAfgCCQX7wV7+hReQHkB8AIAvI | |
D0AwyA/+uuWhYvIDyA8AkAXkByAY5Ad/3TmK/ADyAwBkA/kBCAb5wV/3PE5+ | |
APkBALKB/AAEg/zgL/IDhPwAAN6RH4BgkB/8RX6AkB8AwDvyAxAM8oO/yA8Q | |
8gMAeEd+CFZZudlfSypt5twKW/hXpZWXB/0TwS/kB3+RHyDkBwDwjvzgrwWL | |
Kmz8p6WuL9NrUJGdeHHYjr0gbEf1Clun3mE7qV/Yel9fZHc+Wmy/zCBM5DPy | |
g78yzQ+lpeby/bQ/yq2szOcfGllHfgAA78gP/pg+s8LuWp4JOi3PCs27ha1x | |
h5Bt2LpqH6ZOi5Bt1CZkOxwdsvbnhO36e4tt/sKKoH985AD5wV/VyQ/KCc+M | |
LnHZvm6Lf79m3VYh2+fEkN02stjNG6L2IT8AgHfkh9yqXN7FePyVEjuiZ9h2 | |
PHpFPmjePWy3P1Jsr7xTam99WGp3LP//R58Xjtun2bp9yE67LGy/zyZD5Bvy | |
g7/SzQ+fTyyzA7vFb4/R12aHhNyYAGoX8gMAeEd+yJ2SUrObRxRb087/9jl2 | |
6RSyr78rc3sdiksq3f4H/f8ffi13Y53x+imap+h6cdiWLmO8M5+QH/yVTn54 | |
8rUSN8eQKjtEX31vKGJdUy1CfgAA78gPuaO+yLZHrtrX6D4gbBUJYsCn35Yl | |
7KOsf1DIRjxX4u8fADlFfvBXqvywzRH/trUeVxTZ06NLXK5/4c1SO/TM5PMR | |
Z1zJ3uvagvwAAN6RH3JD+y2bnVC1n9GkY8imTou/L1rzFQ0OTtxH2fvEkFsP | |
hfxAfvBXqvyga9O2IXvvs6qTCaFwpXU8P3mGeHVcaQB/KlQX+QEAvCM/5MZT | |
o0vcXod4+6NPGRC24uL4QWC7oxL3T+q1DLm1TsgP5Ad/pcoPmiucODVxzbMZ | |
syuSrm3asUPIliylfdZ05AcA8I78kBsXDSlK2M/QHMPnk+IvmI7eKxHv0noK | |
5Afyg7+ycf6D1h8m+x53PcZ+6pqO/AAA3pEfcqP/zYnzg67Xxsdf67B3nDVP | |
0deXk9momS/ID/7KRn54+PmSpN+j9WlhH/4k8IL8AADekR9y452PS90+zETz | |
Dz9Njz+PoNryyfonH39NfsgX5Ad/ZSM/fDUlcY2DyPX7HGot12TkBwDwjvyQ | |
G0tDle6Mhy0Pi9mf+f8140viTD+Eiyptt2OT903i7e1E7UR+8Fc28sO8PytS | |
5ofHXqFOWk1GfgAA78gPubNwcaW9+2mZyxEDbimym0YUu/PiYvdA/7Os0p5/ | |
o8SdE1e/TfK+ybiPqfGSL8gP/spGflD9s1TnQwx5gD0QNRn5AQC8Iz/kVuR8 | |
uFnzKmzBogorjZo++PufSnvi1RI76ZKw7XV8yDZvF7KNUuSHd8gPtdLUqVNt | |
8uTJy/uf/2bHePnhzz//tE8++cTCYdbRZ1s28oM0PDR5G73wRs6CqMnIDwDg | |
HfnBf6ol/9zYEuvaL2y7dwnZOq1C1qJ72F55pzTl+iXmH2qn4447zlq1amWD | |
Bg2yRYsWuY/F5ocxY8bYMcccY/vvv799+OGHQf64eSlb+WGHo5O3UbVr1Fzk | |
BwDwjvzgn4oKszc+KLXTL18x36DcULflin7LxB/Krai4MuX+afJD7TRq1Chr | |
166dbbrppnbiiSfajBkzVuaHd955x+644w7bY489rGHDhjZgwACbPXt20D9y | |
3slWftgtRY3lzn3IDzUZ+QEAvCM/+OOXGeV26a1Ftv9J4ZV1mXSW3OD7it1Z | |
1ZFlLeSH/LRs2TL7+uuvXTZYZ5113HxEkyZNXNvr27evbbXVVrbffvvZK6+8 | |
QnbIkWzlh106JW+j51/H+qWajPwAAN6RH3JLueClt0vtiJ5ht78hup9x5R1F | |
Nm/hqrUeyQ/5Tdng0ksvtbp161r9+vVd29t8883d3IPWLJWVUV8rV7KVH3TO | |
dLLvc8P97J+uycgPAOAd+SG37hxVvOJMuBar9jGO6xu2OfOr1oknP+S/WbNm | |
Wa9evWyNNdZwba9Ro0ZuDVNFBecG5FK28kOj9snb6MgXqN9ak5EfAMA78kPu | |
vP5uady9llq39NFX8ceZyQ+FYfr06bbLLru4tjdy5EjmHXyQrfywQYJzISOX | |
ajaj5iI/AIB3qhepNdkDBw4M+kfJKz9OK7f9Tw7H7V806Rhye6XjIT8UDtVd | |
uu+++2zJkiVB/ygFIVV+uCiN/KBzH5N9D9V2jXc2JGoOzfXpmffSSy8F/aMA | |
QK2lcU+tyZ47d27QP0pe0XlxdVrE72Mcembi+izkh8JRXl7u9lXDH6nywwXX | |
p84PcxckP3+asx9qvn/++cc98/7++++gfxQAAFbSnulkNVp27hiy4pL48w97 | |
Hpc8P3B+HJCZVPmh16DUff9vfyhP+j0++IK1SwAAoPp+n11h67ZK3MdYb/nn | |
hj9dYuGifzPEor8q7cbhxdbg4OT54Y33yQ9AJlLlhx5XpM4PL7xZmvD1+50U | |
tvJyH/4gAAAEoLKy0qZMmWLPPPOM3XjjjXbZZZfZ5ZdfbrfddpurP//7778H | |
/SPWalN+Sj5GGdkD0a1/2O57qtiGPlhsJ1wUtkZHJH+NrkdfXlHbRfMXs+ZS | |
r6e20TrB119/3e6880674oorXC3X66+/3p544gl3PgQ1mHInVX7ocF7qc98u | |
vaUo7mvrtgjZl5OZe6ipioqK7P3337eHHnrIrrnmGrf/4eqrr7bhw4fb+PHj | |
benSpUH/iEBeUP/yiy++sJtuusn69OljZ5xxhutf6gxV7bdNRut5X375ZVfj | |
QP3RG264wW699Vb7/vvvc/I6VM+ECRPsggsusBNOOMH69+9vQ4YMsbvvvtvu | |
uusu14+58MILrXPnzu7e+sMPPwT949ZKmkvQudKpsoDOn97pmJBtszw36Ew5 | |
7Zlo3zP+nuvIpXMkNAehsyN0oXbQedO6px177LGu/ek+pwyhtqf7rHLEySef | |
bOecc46NGTPG3YORXanyw2aHJF5XKKWliWu30hZrpnA4bI888ohrW+rHXHnl | |
la5/oXZ3++23u+ec2pyeh/fffz+1DHJg2rRprv/43nvvpfX1f/zxh3sv1B/R | |
e6V7pd7DRYsWJX0dfcjgFRcXu3qCyucan37zzTftscces969e1vTpk2ta9eu | |
Cf8eLFiwwP09Oe2002z06NH22WefuTOR1FZ13qrG3eI9FzN9HdKnPWNqT506 | |
dbKhQ4faG2+8YZMmTXJzDfr9z58/39WU1Bjoiy++6O6rRx99tGu3jIlWj35d | |
x12YPAdEX1seFrIHnimxWfMq7M5Hk/dx6rcJuTOs9zw+ZB8mqAGLmkV1Xjp2 | |
7LjynqqxmV9//dW1ObW9mTNnuvlA1YXRc0/3PN0P9TlkT6r8oOvltxOvD9Tn | |
4r2mRfewLQvxfKppNP6lzNCjRw974IEH7IMPPnAfmzNnjmtbmgv88ccf7eOP | |
P7aHH37Y1XPt1q2bffnll0H/6LWa+vlfffWV6zvecsstduSRR9pGG23k5npS | |
0euU9dT/0HyR+oKqU3fxxRfb2Wefbb/88kvc19GHrBn0u9fZRvrdqz6Bfuea | |
+5s6dar7+DrrrGOHHHKI+/doquOjvyu77rqr638qh4her1oHapstWrSwyZMn | |
Z+V1SJ+yg/Jf9+7d3fubqtaS6sL89ttv9vjjj9sxxxzjMjwZonq+/q7Mtj0y | |
eV9F9Zm69w+7mkp//7Pi3qa9E+68uSSva9whZC++VUqdyFpAYzFHHHGE67/o | |
rJVU5zwsXLjQPS979uxpp556qssYyI54+UH7lDZs/e+/b90+ZNP+qLqJQWsF | |
4809dOodtiVL6ZfUNBMnTnT9VvVDP//885TrkzRP8c0337j1vIcffrh99NFH | |
Pv2k+UfjIP369XPjlcple+65pztv45577kn6Ot3r1Nc/9NBD3ZxBpL+v/ojG | |
XJo3b+76oLFzRPQha4a//vrLzS8MGzbMSkqqnqGp9rX99tvb2muv7f5+lJb+ | |
24H59ttvrUmTJta+ffu4c4D6O7X55pu7fmzk/fXyukJWXo1Neur3X3LJJW5+ | |
VnML1XmtcuNbb71lhx12mLsPIH3qJo7/pNQ6XVB1HmKTtiv2Pjzxaon9MqPc | |
oruUimnjlr+u4/J+SWz9V/VzlDfe/azMQmH6LH6rTtuRV1991Q4++GB74YUX | |
qrW+Ws89PT813qaxU+572RGbH9qcHrYpP5e7mkqqiRb5uGoYqJbB2x+V2nvL | |
29rtI4tty8OrZofe1xdZKRk+59QeqjN2rPk89Se0/kX/vzrUh9W6Qo2RFtL6 | |
3WyOD2r9kcb/dQ+bN2+eywPp5AedhaNzbOONVyojaL/YZpttZs8///wqn6MP | |
WTNoPUujRo3swAMPtGeffbbK5/W71/oX/V1o1qzZKvPr1113na255po2ePDg | |
uG1dOXD33Xe37bbbbpX1aJm+rlCp7Zx33nlp92W0HvCAAw5w84KZULtVP0jv | |
93fffZfR9yhUpWUrzpEb+36pW5902/J+iDKDajwqNyRa86A12FOXv+618aX2 | |
4LMldstDxfbQ8yWudqteV8qyJd9p/8JJJ53k5hDSoX6L2p3W/2X6zNLairZt | |
27q5C3gXyQ/K4Xc9VrxKbv9zcYXbG52sbpquei1DdvbVRfbN9zRCv2gPpuoL | |
pEP9To1Rn3nmma7vmonFixe7vYEaSy2E/qb6Xfp9qXZKtqn/oPHHVPlBv3Pd | |
6+rXr2+ffPJJ3K/RGqR1113XTjzxRDdfFEEfsmbQ+kDlv9VXX91OP/30uJlU | |
+2v1d0F5Tmt2Retj2rVr516nPdbxhEIhNxb33//+d+W9INPXFTKNqagNaf9C | |
Kpo/UB/m0Ucf9bT2T/fQyPpDVJ/6+1qftPCvSpcZ0h3q0fokvU59G62RKKM2 | |
ZGA0FqlnlPoy6bSlQYMGufWCusd5oXa+2267paxbgdSef6PEug8IuwyeyIJF | |
Ffbup2U27IliO+/aIjuyZ9jOuabIhjxQbE++VmJ/zGEdp9+0LmWvvfZKqw1o | |
L4PGupS9vdC+QK15ee211zx9n9rif//7n7Vs2TLr+8fTzQ9an7Tpppu6nyPR | |
HgeNgW688cZuDYz2ZAt9yJpj1qxZbu+K5h80bhbvOal1ufq7oPc50ka1Vl7Z | |
Ts/XePMWoiwSmbvQehovrytkWoO0ySabuFyQqs6q6rjsu+++WbknqE3rvYq0 | |
W6CQRJ5TesZpTi8ZjaXtsMMObg7fK40BaD226k4Chejmm2+2tdZay41hlaZY | |
MKb1fqqxlI29stp7q71LhUB7j7UufeDAgVldy5Rufnj66afde6w+RqJ+jfog | |
6ndq/FR7xIQ+ZM2hNTGa3/n000/dPr5Yqo+lOSa9D+q/Rr5G68/Up9Xfv2Rz | |
YMomeq3WAXh5XSHT/fOOO+5wvzPVWU2U1UXzBZqvyAa1Qe2lHjFiRFa+H1Db | |
aF59yy23dHXokmWIsWPHuvtjttY+aFxNa3uBQqR1SB06dHBjzzq7IXrtSjR9 | |
XOsi0l1jmIrqjDRs2DBlvZF8oD0Lbdq0sS222MLVZ0yV09KVbn7QnhN9zc47 | |
7+zWG8WjXLHtttu6rKA6dkIfsvbQ81Pts27duu68gEgtEc0Zat2TajMlW1ej | |
2lp6D1UX1MvrCp1ym+pKrLfeeq7GhNpQPNpTpN9xtqhetta1AYVI4ysa49pm | |
m21chki0LvCqq66yiy66KGv/XT03GzRokLVnOlDbqJ6S5gI0/6d5CNWGjPc1 | |
6l9Wt85BMvvtt5+rQ1oINF960EEHucykORyNF3uVbn7QmQ36mj322CNhzTnt | |
KdO8rtYqRcYx6UPWDpq/P+uss9waMo17R9c10P52zSmtv/769u677yb8HqrF | |
rPdQcxheXpcunWegnzkfL43HqN1ozk/rFmPXN6jd1qlTx62lyBbdR7UmNJr2 | |
wAT9u+Di8us65ZRTXI2J//znP9a4cWOXp2P3OGh/34MPPpi1dqe2rPrpqlsf | |
7fzzzw/898HF5de1zz77uGea9tiqH6i1vNFUW0R91WxS+47t96omc9C/i1xc | |
2kOt/rvG8jWmr/UGXmtQpZsftK5IX6P3ONE5cZqX0D1XX6dzciTXfUh4p7Ur | |
qt+p2llai6vzVaLXyL399tsu/+k9THbGoNYm6j3UPJmX16VLe3J0v8nXS1lO | |
vxddrVu3XmUsVGsn9PFsjsUo6+v+Ek31XYP+PXBx+X2tscYarn3pWRu7XkJ9 | |
m8j8erZoXUHsWkVliqB/D1xcfl5auxJ55mkNRDSt89P5Admks+KHDBmyysfU | |
1w769+DX71hnB3uRbn7QfK2+Rvs1E+UH7c/dcccd3ddpT4zkug8J79QPV00D | |
/T1QHzK2T6q6TXr/tJ4mWQbUeUh6D5VBvLwuXRqv07ki+XhpjYTWkun3orXR | |
qhMRnR/0HulekOrM9+rQ/GDs/IPmeIL+XXBx+XXpuaW9DWp3WsekPZY6Nyea | |
6j5ms+aq2rLuk7HrsLVmOOjfBxeXX5fmAtS3VWZXfdXYWpw6Z0VnDWST1r3E | |
9nu1vyno30WuLu0P0NiI+uTqYyTbX5mOdPOD1ktF5h/i7b2VyPolfd29997r | |
PpbrPiS8+fXXX61Lly7u/DGtj4t3fqrqaml9ruaRlAcTiexhOfbYYz29Ll16 | |
7urZnm+Xag5oDZl+b2oXOtcv3vuiNdpqX9mi+4vGXqLpvxv074OLy69Ltca1 | |
h1r1xFWPPN65cKrdqjqv2aKaZxoriD3TU2vAg/59cHH5cWnsSjVctXZJ+/A0 | |
Fh1L5xOpbWaj9lLE3nvvvbLWT4TqgQb9+8jFpbObVStaa5fuv//+jM/PiJZu | |
ftC4jL5G73H0uWLRIvuntf8hMi+S6z4kMqf1Zuecc447r0x7kxLV9dL8vepq | |
aVwgUV0S/T3Smn29h/qeXl5XyHRvVFavV6+eOycnWa0J1dpVPbZs0TyH1n4C | |
hUhrbbX3QWNkGuuKl9lFzzGt88vW2kHtbVKdBKAQaT+t1q1rvZ72FamvG4/q | |
L6k/ETmXyitlFK3ZLoSzV9Q3V91+/XnVN/d6bk1EuvlB6+O1p0z1l+JlQ9F5 | |
Adrbrf6izrQV+pA1k9a9XHrppTZgwACbOnVqlbUxmp+P1OnV16pOgea9dG5E | |
PPr7qL39+hqNH3h5XSF7//333VjkIYcc4tYOJaP1gDp7Jxt1FPR3QHOHido2 | |
kM90H2revLkbm1M+SFYjXf0bjeOprXqle63uf5x7hEKl8TLVCbnhhhvizvdF | |
O/fcc93apmxQnXTN82fzPISaSrUY9DvWesxE9XEzkW5+0HiM1iFp/ujnn3+O | |
+zWff/65y5CqwaU1F0IfsuZRG73xxhvd2LXWv8XOB2p+STVGtI5G9Hekd+/e | |
bl5Jr4tHexH0TNVc04cffujpdYVM74na+YQJE1J+reZZNW6je4IX6sOofoHe | |
q2zODQO1hWoka3xMYyrp1FHVnsujjjrK87P4ueeec2soEq0JBvLdTjvt5Ob8 | |
0llPo5pMu+yyi02ePNnTf3PGjBlujaLmHPOdnumad9AZzdncLynp5geNS+r3 | |
rXyQ6NxNrRfV2QHKApG6kvQhaxbV7VFdA+VR1dZRFoxcmivS3KByXseOHVc5 | |
11jrE/Xea69EvGem3jd9XrVJomuKZvq6QqU5BWXo2LXQiWjtpva+60zATKnO | |
vcZeE40LAPlOe5eV3dWvSIfWfmov56233ppx5tac3/7775/wXFWgEGgeIN0z | |
GPRcvOKKK9y8Qab9BY27qZap5jL0//Od7k/qe2dzr2SExloi+SHZOKa+Tmtd | |
VPNl+PDhcb9G9199XvfU6Dkh+pA1g7Kc1tpuv/32LvNr7Dr2Up1Q5XvVQY9e | |
36u9fGpvWh8c+/ewqKjInfmiuanRo0ev8jzN9HWFSr+TROs/49H9VO1NfZlE | |
uT4R/b51rrzec+2tAgqVnleJzjVKRHPyGtNTrZDq7oVQ3XWt2c3WOU5AbaU+ | |
X7rjZaI6Pd26dbOzzz672vN2WnvRr18/69Spk+faQ7WJfk+J9nNlSplAY46a | |
P1V+0O9V72WifpzGpjXPpHMCY/dQa9xGYynqg8au26YPWTNoj7TmkDQXFKn/ | |
m+hSjZFYqqemXKG2pzXCmp/Queg666NVq1Y2bNiwuOsXM30d0qN7g+obaP+z | |
9q2ks6ZC7Ve1ZvQarb3O5ppIoBDo+am6ytr7rLG1yH6xVK9RZtdYmeonah4D | |
QPWoL6o5BNVS1j6kdPqNquWjGrGq1aOa9ciMzgdT7Rb9HrWGU/s1VQ9W486a | |
F1JNXM0Rxc4FKL+88sorbm+nsobqaWnsRGvStO9ZuWL8+PFx96PQhwyexte0 | |
h11rblNd8er+6H3VuJn20ut9U31yzT1qvY2yX6K1dZm+DulThnjyySddG1O7 | |
1u9aeTG6TanOhOYo9B5oLlCZXrWuyQ5AZpQHNA/Rt29f92zTHtCPPvpolbXc | |
al96Vqp96tmqPs+IESPIDoAH6lPedNNNrman6ilr/bzq0UfG2TUnqD2cWhul | |
Pddqnxozi+zNRWZ039Lv+qWXXnKX+pTKBfqn1jHo/ysHxOtXaL2Y5hC01kn9 | |
P/UF9U/N4Wr/dKJ5KPqQ+UP73bV2VzlU+w6VA9OZG8v0dUiP9rYoH2h9oeb0 | |
dCajcoLOjFGfRWd3as5Xe0RVw01jOIVQewLIJY19arxF8wpaj6SxNJ2noxoU | |
yvJqgzrHRRlDz009Pwth3TWQaxoT0/r4oUOHuj2dam96zumfxx9/vHv2qT79 | |
4MGDXZ9Xe20RLN0vNZatPfDqC6ofovHPdOaQ6EMCuaU5h0mTJrm91ZpL0v5o | |
XRorUF0n1VmuznpTAKnpOabxT+UD1S9XRh81apQ988wzbs5d455aywsgu1T/ | |
QGNnmk/XPJ/andblamz6k08+cfV/WBsPAOnTPVNZIZ2alACyR21ObY85PsA/ | |
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 | |
35Wl9b3JDygES5ZW2r1PFFvH3iva0MYHr2g3aj91lv9zi3Yh2/XYkB1+Ttge | |
f7XEZXDyA5B7P/xa7p5ZrU8L2w5Hh6xey5Bte2TIDuwWtrotV7TPbZb/+0Gn | |
hu2au4ts1txqDJDFQX4AUAheHVdqR58Xts0O+bff0nNgkb33WZmN/6TUzru2 | |
6hlXmy7/2oN7hO3tj1MvbCI/IN8t+qvSLhhcZI2PWdEXiW0v2x0Vsjanh63h | |
oSsyxe5dQm4cNNX5D+QHwJuX3i61w85a9fl26a1F9sXkMps0tdzGvFdq+5wY | |
Xvm5LQ8LuXnDn3/LfFET+QFAvnv93RX3To3BRO6fWm/x26wKNz6qOd8Zy/9/ | |
sxPi929anBK2735Ofp8lPyCfzV9YYWdfXeQydWz70Bye5iTUV5nyU7l98k2Z | |
XX1XkW3cNmQ7Hh2yvRO0K/ID4N2ol0qqtDGtW5o179/5hZJSs3c+LrX1Wv37 | |
NesdFHLziNFfVx3kBwD5TH2ZfbuGq/RZXn676pyC1nLH699orLXrxeGk/x3y | |
A/KZ9jVsdHD8/r+ywl9L/l1QrbXVcxZU2MgXS9x6wOjczvnTQPaMnVBqux1b | |
tU2NmVD1+VZcUulyRfTXrbM8T/QZXGRlGUxDkB8A5KtQuNLa96yaHXS/XfJP | |
1Q1kGsdJ1Mepv7wfpD5RIuQH5KtPvy2zrQ6P3y60XkJzd/For8TgFHsfyA9A | |
Zqb9UeH26cW2J42X/bMs/gbp+5+u+ozb4tCQvfF+9YsPkh8A5KsX3lx1vjZy | |
XXhj/P7KV1PKkvZz3vwg8T2W/IB8pDHLzn2q9lEi1+mXh5PWKZv3Z4W1PCXx | |
68kPQGY0bxBvbu/aYcUJXzPhi/jPuGOXt/Hq1mQiPwDIR0XFlW4vZ7x75b1P | |
xr+//rO00jZpm7ifM/pd8gMKi2o9au4tUZt48NmSlN9jwC3x1wWy/wHIzNRp | |
5SvqFMRpTy+8mbhNas9fvNdor1KqPX6xyA8A8tEr40pt/YMS3V/j5wCNv1x2 | |
W/y+ju7VidZpCPkB+Uh7G5L1/T/6OnV9Y+q3Atl1TZJ2maxNLvq7MuHrdCZS | |
dZAfAOQjnfGQ6D75/heJ768zZlfYaZet+lqdBzHiuRJ3VnUi5AfkG9UlS1ST | |
LHLN/TN17RbyA5A9Wi/YtHPi9vTrjMTzCNoTmOh1Om+uOsgPAPLN4iWVrqZk | |
ovvk198nDgKag/j193J3XsTdjxXbQ8+X2Adflq1SXyYe8gPyjc6jird/KPrS | |
/ohUyA9A9kz7o9zWTdIukz2rNCaQ6HWNO4Sq9XOQHwDkm8k/lidfc/FV6jUX | |
6hct/rvS1ZApT6M8NvkB+ea18aVJ25H6MOnsuSQ/ANmjs+KStSeNew1/uiTh | |
Fe/sR12q5VpcnP4mavIDgHyTqt+jz2cb+QH5Rmv2krWjzdulN15JfgCy565H | |
k7ennY4J2c4dE19rJ8gPuubMT/8sOfIDgHyT6v76yIvV2yeWDvID8s2Nw5O3 | |
ox2OJj8Afrvm7uQ1DS4cUmR3PFKc0bXoL+YfABQune+Q7P6q2hXZRn5Avrlo | |
SPJ2tHV78gPgtwsGJ2+Xj75cYguX54BMruqcQ01+AJBvzh2U/P56yBnVqzOR | |
DvID8k3/m5O3o40OJj8AfkvVLm8ekfj8uGwiPwDIN6nOq9p4eb/nz0Xpr/NM | |
B/kB+ea2R5L3+3X2bXka45XkByB77hiVvD2dVs06rJkiPwDIN7c8lPz+quuN | |
D7K7h5r8gHzz3Njk+6d1LQtRvxXwk86XTtae9jiuenVYM0V+AJBvxkxIXn9J | |
1ymXZneMhvyAfKNzbFO1o9+SnMkeQX4AsufTb5O3S519pDOMco38ACDfzF1Q | |
4dZWJLvHqvbkxKnZu8eSH5BvZizPBqnyw7iPU8/jpcoP519HfgDS9cec1O2y | |
/03Vb1PprEWMRn4AkG90HzzkzHDKe2zv5f2WdM6/Sgf5AfmmpKTS9u2avB3p | |
rKpUUuWHXoPID0C6SpZH9gO7JW+Xqo327ffpB4Ifp5W752ER58cBKHCPvZx6 | |
7faWh4fsydfSOwtC91fty/5nWfz7K/kB+eiex5P3/U+4KPU6wLOvTl7PQJ/3 | |
gvyAQvPAM6mfb6dfHraKNMqELF3+TDupX9h6XFFUrTkI8gOAfKRa1k07J7+/ | |
6tq9S8je/DD5GowvJ5fZ0eeF7cSLw1ZaFv9ryA/IR3MWVFij9onbT8NDk6+1 | |
/uSbMtv2yNzuRSI/oNDMX1hhOx6dvF1tdsiKWq7hosRzCsoOl95aZNstb6Pf | |
fJ/g4ZYA+QFAvnpmTEnKfRC6Djg5bLc8XGzT/ihfOf4SClfaxB/K7b6niq3N | |
6WE3H/zZxMT3V/ID8pHW96WqN3/5bfHXAf42s8La90y9jlDtywvyAwqN2tug | |
YanrDCq76zzVX2aUV5mLmDS13PoMLnJjANffV5xwbCwR8gOAfKW1RucOTN73 | |
iVwafzlieV/n5P5hd089/qKwtT0jbDsdE7I6LUI27Ink91fyA/LVj9PLbZdO | |
idvONkeE7IlXS6y45N8Q8cWkMjdft16rkDXukLztbdI2ZBM+r2bnJQr5AYVI | |
+TzV/iRdmx4SsvbnhN16piEPFNutDxdb3xuK3Dmq+txhZ4fdPGN1kR8A5LPp | |
y++xXS9OfY+NXJqvaHDwisygf6/fJmS3jSx266GSIT8gX2lO7tVxpa6fn2wd | |
4MmXhN04pvK35hRUR1L9FF2p2l3r08JuL/br75ZWu6YB+QGFSPMJ731WZtsd | |
ld6zbd1WK7K+vl5nqOpjyg6Z1iEkPwDIdz//Vm5nXFm0MhOkezXSuOprJbZw | |
ceoODfkB+SxUVGmjXipx/Y9k2Vvr/Br8f9+k58AiV2syVf0lXfWWv7Ztj7Bb | |
K5XOns9o5AcUKtViem18qe1/UvpjZJFL8+1aw1SRYQ1C8gOAQjD9jwp75MUS | |
2y+N+6z6SP1uKnJjO0vTOF9XyA/Id0uWVtq4T0qtY++wrdMq+XoJ7SeKnC0X | |
mx/02j26rKjdpL0TI54tsXc+KrWvppS5OmfMPwDpCxdXur3PFw0pcvk91fNN | |
a57ueKTYvv+l+m0tGvkBQKHQfgjN1T7/RonLB+q/aA1o825h69I3bBcMLrLb | |
lvd7Pv2mzGbOrbCyakzrkh9QCLQHaOryPr7WGV1yc5Hb46C1Sq1OXdGGrh1W | |
7HL3n4v/nUQY8VyJ21d0zV1FLsPr8+rvaF5w9vwKW/JPZbXPropGfkChUw7Q | |
XN9n35a5mh/nXFNknfuE7aDl7VJrA9X+Lln+zBv+dImrC5JqPW46yA8ACo3q | |
2SkfqP/y3c/lbg73p+nl9vvsCrdWKZMxGfIDConWTcz6/zY05adym/zjijY0 | |
788KK49Zf6Tz4FX/Rf9Uhq/u+qRUyA/ACnp2/bWk0u2tVt0DtUu1T7U/PfP0 | |
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 | |
qanIDwDgHfnBf+QHCPkhOPc/lXz/w8B7kueH/jcnzx9LllKEqaYiPwCAd+QH | |
/5EfCs/QoUPt6quvts8++2zlx2Lzw+LFi+3++++3fv362Q8//BDUj1oQPvyy | |
LGn7U23XZM64MnF+2LED+x9qMvIDAHhHfvAf+aHwqK/SsGFDa9eunY0aNcrK | |
yspWyQ9TpkyxXr162TbbbGPNmjVz/47canN64j0QXfslr6HU8fzEr709xd4J | |
BIv8AADekR/8R34oPBMnTrS7777b9thjD2vcuLE98MADtttuu7m298gjj1jH | |
jh2tQYMGdt5559no0aMtFGIMO9fe/TTxHITmEMoTbGFQ21SNpXiv03nWS5ex | |
dqkmIz8AgHfkB/+RHwpTUVGRywb77LOPbb/99rblllu6tte6dWtbb731bPDg | |
wTZjxoygf8yCcv19ifdBK1/EM2ZCadyvX/+gkL3zEQ23piM/AIB35Af/kR8K | |
29ixY61Jkya29tpru7anf15++eW2aNGioH+0gnTvk/EzRKfe4SrtMFxcaUf0 | |
rLp2SdnhrQ9ptLUB+QEAvCM/+I/8UNgqKirsueeec+1O16mnnmpz584N+scq | |
aO99VmbtzqyaC3SW9JSfy117/GpKmR0ZJzvoY9RrrT3IDwDgndZLaB128+bN | |
g/5RCgb5AaWlpXbhhRfakUcead9//33QPw7+n3LEwT2qZoS6Lar++9G9wvbq | |
OBpqbaMaZ3rmXX/99UH/KABQay1btsxef/11e/PNN4P+UQoG+QEyZ84c+/zz | |
z62ykv22NYHWJg17otjtjd7nxLD1GVzkzpk7d2CRnXJp2E67LGzX3F1sj75c | |
YnPmc750bfXzzz+7Z97kyZOD/lEAAEgb+QGoWd78oNTVXFLb09lxiWovAQAA | |
BIH8ANQcI18oWbk+aa/jE9dtBQAAZgsXLrRvv/3WPvzwQ/voo4/cOux//vkn | |
6B8r75EfCpvOdvjxxx/t448/dm3vq6++snnz5rGOKQDPjilZpd31uCL5udOo | |
vcqXB8Pff//dnQH/wQcf2KeffmrTp093e5EA5FZJSYn98ccfrn4Iaiftd3j7 | |
7bdt4MCB7rzbiy66yAYMGGD9+/e3Pn36uI/dfPPN7t6qM3KRfeSHwqNs8M03 | |
39idd97pzohTW1O706U2qHZ3xRVXuHXZf//9d9A/bkFQO9zmiFXbXdMuISsq | |
Jsflk1mzZtkTTzzh2tn5559v/fr1c+3ukksucf+utqgzHKdNmxb0jwrkLdUt | |
Vxv866+/En5NOBy2d955x4YNG+ba5PDhw23kyJH266+/Jv3emb4O6dNcQ+Qe | |
etVVV7kzcF9++WWXJ9566y1XU/Kee+6xSy+91M4++2xXn0J5Edm1+O/U+aGY | |
PkzemD9/vt1222125plnupyuDPHMM8+4Nqe29+qrr9qIESNs0KBB1rt3b3dp | |
PhC5NeK5krhtr+P5YZvwWZn9MafCZYyFf1XagkUVNndBhc2eV+H2Tv+5uNL+ | |
WVZpTBnVXJpXeOGFF+yss85ytc5uvPFGGzVqlI0ZM8a1O/VnHnvsMbvpppvs | |
4osvtjPOOMMef/xx1xeBN8XFxe53rP7ENddc48Yr77vvPjffmmq+R3Ulnn76 | |
aVcnS31B9QlfeumllOMq9CFrLtX5bN++ve2yyy42e/bsuF+j849uvfVWO+ec | |
c1y7VPt85ZVXbOjQoe5jEyZMiDtHn+nrkD6de9utWzfXf9HvN9F7qLmlX375 | |
xWUJjZPqnjpp0iSff9r8Nu/PipT5QRkDtZ+eXaozrzyuvskPP/zg1lHEs2DB | |
Avf8U7Y/+eST7cknn+S+l0PnX1eUsh2munRu3G6dQ9a5T9iGPlhsX0xizrYm | |
UF9S/Qc989S3+OSTT2zp0qUJv/bLL7+0u+++253FcvXVVzMH6IHGS/S7HDx4 | |
sD366KNubOS6666zDh06WNu2bd36hkTn3Xz33XduPkjnab744ouur6KxFuU7 | |
zc+qHxoPfciaS1lS7/+6665rO++8c9y+p56JGs/eY4897OGHH16Z4fWe6Rna | |
vXt3O+KII9x5Zdl4HdKncU7Vmb/jjjts5syZab9uypQpdtlll9nxxx9Pjfos | |
+vm38pT9kt9mskawttPcnfojmk9Q/yTd55dyxEMPPeTuexqHQ25061/1nIds | |
XDqH7pcZbMIOisa3b7jhBuvYsaOb29N+o3Son6Nn5Yknnuiee+m+Dv/SGve7 | |
7rrL9fVVm1r9Od33dE/THMLuu+9um2++uTvDL/b3q/2Ymitq3bq126MSWSev | |
ddTjxo2z/fff3+WK2BxIH7Jm03vXtWtXW2eddRLmB42rNWvWzOXLxYsXV/m8 | |
1vVuttlm7v3X3zGvr8uU/q5pzY7WRBaC3377zQ455BCXHbT3obo0l6g1T2qD | |
6b5e75PmjXXPQFWjXoq/biL6euFNNkDUZurDaBytR48eGa2rVhvSWotWrVpV | |
a/5P+0K1zwKpDb6/OCf5QdcmbUP25WTmIoLw/PPPW5s2bdxcXia0909rLdQn | |
TZfG5TReXugmTpzo+uoa74+lHKB1nGuvvbZttdVWrl8ZTXMVG2+8sZu3iJ2j | |
1f1U/ZAtt9zSrT+L5ncfEulTP1t7jbR2baONNkqYH2655Rb773//69a6xRtn | |
01ic1j7p9Tq/xevrMqVaJ3vttZfLEIVA6z7Vh/FSV0k1Kw499FC3pjAd7733 | |
nhsLGD9+fMb/zXzz9z+VNmN2hT03tsSanZC6/9HylLA9/0aJ/TarwhYvYd61 | |
ttF6wRYtWniat9N4qPYinXTSSWnVMtCaC40VaOwUqak9rtsqN/lBV+NjQq7d | |
wz8a71K70xoWL9R+DzjggLTHrLXmcO+99064NrFQKHM1bNjQrdnU2GUsndm3 | |
xRZb2Oqrr+7ubRFLlixxayQ22GADe//99+N+b81faAz79NNPd/fGCL/7kEiP | |
spr2vzz44INuP1+i/KBxab33+juRqI+pr9G8VJ06ddzaei+vy5TmvbQWp27d | |
um6cLt+prey0005uTaFXaru6P6aag9A6RL2n66+/vtuvDbNwUaUd2ydsR54b | |
dvXl0+l71G25oha9XnPsBWFbFqIfUluoD6G8rXunV3r27bbbbm5MNBk9N7UP | |
dI011nD/RHrSmQv0cj38POOdfrr33nvtqKOOymiuPZr6PpG9EKmob/S///3P | |
5Y1Czw/qw6+22mqujxVvjFZrEnQ/09doP0RkPkB9BeUOXdp/GY/WgDZo0MD1 | |
aSL7IPzuQyJ9moPSnI8yvdayJcoPGp/ecccdbc0113R7XeJRuzrmmGPc3xt9 | |
Ty+vy4T+DmkPR7169axnz56e7y+1gfYpaR9mNvYNKXtpjjDZnILqcmnsU/OT | |
qo0XPUZQyPRI+eirMk8XpXRrD42xNW7c2J3pkA2a/73gggsSfl7rhLVPQmsC | |
mjdv7mraI30vv11apY5rtq7j+lLLxy9qBxrj0p6HbNCea7XjZPsgtLZQYwXq | |
17722mtZ+e/WZvrd77PPPiv3MMTSPVFzAerPKedF5lXVr9ccwrbbbptwj7Tm | |
gpTTNDYZWR/lZx8S6dP+ePUFI3NJyfKD2tCmm27q+o3J1gWpL6v3UDURvLyu | |
urQmTvOLWgOnrFooc1hay/Dss89m7ftFaiDEo5oLqqut+2iXLl1cuwYKkdZ6 | |
ap4zW9SP0ZhbvHEAPX+111pjek2aNLE333wza//dQqGarNffl5u9EPucSH7w | |
i/olWj+vtTDZoPEv9WcT7T9Su9QYev369d1+bdbWrxhD1D1I/cZ4uUv7I9QP | |
03yBxhgjVK9JfTzd5xLtTVWfQu+HskJkHsGvPiTSp70qqr2r52BR0YrzOJPl | |
B7UjtSGN7b/xxhsJv+9pp522ct7Ky+uq4+uvv3Zr8fTf0c+uHKH9NPl4RddV | |
1liM7qXZHIvUGKfyVyydo6s6rxoX2HXXXd25EUH/Lri4/Lpis7LqBWruL1u0 | |
d2nDDTescu6O1jZpTnWHHXZwNU20z0nP0KB/H7XlevKZt+ywHr9ZnRb/9veb | |
dZ5nVwz50h4cNd6eePpte/6FN+zFl8baCy+Odf//mefedK8b9cQ7Nnzku3br | |
vR/aRYO+tf1PmBM3P+zWcUHgf858vWLX9Om8gf322y9r7U5Uwyl2L4X6xfqY | |
xufUd4nsDQz695GLS/2nbFIdF80zaK5U+yQj1GdQH0/1mRLN22qPuu51yh6q | |
syR+9CFRPXpPtLcl+uywZPlB++hV21X9x2TrW9TH1HuodufldemKrI1ba621 | |
3OsbNWrk5tby9Yoed9HYidpZNsdEtGdEe8+j/fnnn67uwX/+8x/3O9b4QNC/ | |
By4uPy/tDYqmZ5TObsgmjbHF1nHS+J2enWp3ujdr7UbQv4vacjXb9xBbv/kf | |
q9ZMOuAz23ufVhl/z233u69KftjigHcC/7Pm66VzUKOpfs+xxx6b1XanM5Bi | |
9xNpnZL6QWp3Gvdu2rRp4L+LXF3ZXO+jWqoHHnig6+tfeeWVq6wh17lU+n3q | |
v6k6rvGo36n1ZPo65RDJdR8S1aP9LVqjovcler48WX5Q7te+eL2H0ZkylsbH | |
9B6qtpqX16VLdYA1X6U9hepL6++e1uXl6xWdH5Qb9GfO5h4EzUlqD0Q01XzR | |
PTvyO9baxqB/D1xcfl4ap4umMcsnnngia+1ONtlkkypziVozEckPmn846KCD | |
Av9d1JarccvHqvT192g50NP3PKj1obZOi0WrfM9dWt4T+J81X6/o9S+i8xk7 | |
deqU1XbXq1evKnOJ7777rssManfqC+tcgqB/F7m6Bg0alJXfo+ZQtb5Z9yvN | |
z8bey1SbVb/Pfffd19VgiUfrmrTXQV8XeU9y3YdE+rSWVvNCOv8jdu1asvyg | |
fqXev/XWW8+1rURUz0Dv4WGHHebpddWh+omqoaC1PFtvvbWrD6C9N/l4Rdd4 | |
VPZTnyKbZ6bo/qx9SLFUb157ZVR7TfMPN954Y+C/Cy4uvy7Vl4imcVH17bNF | |
65a0fim2BrP+u8OHD3drBnVv1hktGvcJ+vdRG66jzp5VJT/ccu9ET9/zldEf | |
r7IWarsj/rJ3xn0Q+J81Xy/VKYim/mPs/LhX2uP71FNPrfIxrenWHIT2+amm | |
j+rFap9h0L+PXFw6W8ErraXWeMp2223n5gF+/PHHKl+jMetU8w+R9Uv6ukht | |
Oz/6kEjPF1984dYtxavbmyw/qK6WPqd5JOXBRCJ7WCJjBJm+rro0Rq5MpNpg | |
LVu2rHLfyVc6A0d9/mzROboDBw6M+zm1ec3zap1Fu3btEtZgA/LdiBEj3BxE | |
tug5rv3R8WjMQOunNG6n5zP1CdNz28iq+6W79gubl/KbN43493vWXZ4jRr/H | |
GZB+Ug0P1e+Id4ZYJjR3r3X6ifrQ2gusfqnGzVRbhP3TVWkcU7lOa5zVf5g6 | |
dWrcrxs6dKjr4yn/JTp3NrJ/WusctFZN/OpDIjmt9dF5qWeffbZbu6vMHX3p | |
TEC9R+qDa1+1PhY531F5Uh9XFk9UO001tPRM1Xt45plnenpdJrTWTj+35rp0 | |
Pn22ajTUZMroai/ZqN+q35fGObU3JtnX3Hrrre791HsV2XsPFBLVd9M4mcbL | |
skHPXdVwTUTje9o7uP3229uee+6ZlTHDfLfo70rbpVPV/c5nX13kPlcdOt+x | |
58CiVbLDU6/Tl/SbnnMaH0xUx7O6tJ5e+3mTPcfUh9E8hOYHszlWly/Uv9f5 | |
l6pbk6yWi8ZctAZaNeTinU8skfqt2n/9yiuvuI/52YdEYupfa92JcoLO84u9 | |
lCu0D1m1tzQGrY+pHo8oL2pdvN7/SC6MpfMDtPYs+nyjTF/n5c+oP4f+rr31 | |
1luevldtoLyuemhqw16p3oTuzcqZyWiup2vXri5rpjrzCshHel4ptw8ZMsTz | |
99KeQ835aqwzGfWddM6n7pOJ5gixqp+ml1ub08NVMsT6B4Xs1EvD9uzYEnv/ | |
8zKbNLXcfp9TYQv/qrTfZlbYN9+X27ufltl9TxVbh/PCVq9lVP2mE0L29kfM | |
OwRl1KhRrr+gfoMXmkvo3LmzGxdPRet3NS6+xx57FPz5cdE0jqHal+q3xa7x | |
1FyR+o+RNdeaO1CfQfM9idYuaH2M5pe0Fl3/X/zuQyI+/b1Xf1NjZ/GuYcOG | |
ufygMS7V69THIuNrqhuqfrnmlRK9P6rJpSyvnB7ZJ5/p67zQWcw6Y2nMmDGe | |
v1dtoP1PGh9Rvz5Teq+1xvPFF19M6+u11k1ncX744YcZ/zeB2kxrjlRL0kt2 | |
1/oJnXWpZ3BZGgcIan+Ecku29jwWAv1an3itxDr1XjUHVOfaqE3IuvQN26Mv | |
l1gp0SFQ6k+qnqrOE/BCazBatWqV8CyzWNrPq68nP6ygNfBaC686SfHWI+n+ | |
qPta5Pel37PmHpQPItkglvps2q+uGk6R7xlEHxLVp3W1yg/x9j+I6o7r/dFc | |
VbyaPzqLUDVEtDY++u9Tpq/LlP6+6u9QNr5XbaCaBdrzrHppsfsv06Eavlrj | |
qTUUyc7hjKY2rbVt2VqHCtQ2agOaB1BtskzWE+leqLWAuu9VpwaC6rUnWmOM | |
5P5cXOHmG54dU2J3jiq2AbcUWbf+YWt9Wti2OypkTbuErN2ZYbdP4vzritx+ | |
B50NX1TsfX0oskdrC9SXf+GFFzJ6vcbCNV5dnbNXNb5O33QFnT2s/ob2RH/1 | |
1VcuG0QurWHSGK7qwkaPc+h+d8EFF1jdunXdWRrxaH2M1o7orIjonOZ3HxLV | |
o/dEa+lV419nKGguXWtuo+kcANVK1brf2Pyo16sG0hZbbOHmrKJfm+nrkD7N | |
F2kOQu053t74RDR2etZZZ7l6a1pHASB96lOoLqH27mm8Ld19SHr+au2TzpFI | |
diYSgKo0V/fAAw/YEUcc4fqi0ecMJKP+hsZJ1e6U3VOt1UVVGjNUdthyyy1d | |
/RatZY6+tPdUexG0rjp2v4jWLahOhPoqsTVcNWaterKae4gdj6EPWTMpq2lO | |
6MILL3TvnbKh5pf0PNTcVGxdM73/Gm/TWX/qs2rdmZ6hI0eOdHleZ6XGW0eT | |
6euQPtU501k4qp+mudnoswGjqY+jmrfaa656kHqf49VbA5Ca2plqRuv5dvvt | |
t7u10onWOGhNsMZMtWZJmV3z9dmofQAUGu15fuihh1yfQmeTaU4h0Z4Ifa3y | |
vfb4aq5da58Kob5KLqhOq/bIaq9ysks1V3UebTTtOVHeU59P9a+1D0JrHtQf | |
UX141XBSrbl490/6kDWPsqT2zao9af/Dvffe6y7NReifsXuQ9b7qfVTm0Lo3 | |
/V3Qnj7NO+n/JzqXPNPXoXqU27VOU3lQfRStr9A9VmMuqlmh91TtVJ/TuKne | |
g9h9TwCqR7WNNdamGo9a86tzr3RPVZtT29Mz7tprr3Wf69u3r6thoZwBIHNa | |
Q6jzUDTvrvW3urQfWm1R7U7jaKoDo7qTOrNFY2XK7NQNzJwygcZJUl33339/ | |
3LVEWmOt9Ui6B2oMU/0/9T2VJzQXm+i9oQ+ZP5Q7NI+kzK/av1q/W5rGxrJM | |
X4f0Kc+rBqvOndI6Qs3tadxF/9Sldqo6BpMmTUprzyaA1DRvrvyuOVs90zQn | |
Ed32ND6m56TmCRn7BLJH6wHHjh3r1iRpzX2k3enSGJrG1FT7M9GcPPyle6Xe | |
C9Vf0Ri15hM0jpnOXCx9SCD31Ba1xlB9Gu251Hin5gsz2WMNIH1ajz1t2jTX | |
5tT2ND+vNbyszQVyR+NhWkev82PV7rSPUzUkOfcNAAAAAAAAAAAAAGoGnRNN | |
jSXAX6+99prba0SNAsA/qsuqvbjsMwKAzGkdts7r7Ny5c8L6dgCyT3XmGzdu | |
7OoZAPCHMvsBBxyQ8LxiAEByqiup8yAiNZl1ZhV7yQB/NG3a1LU71ZgEkHuR | |
M8rU7nTG2TvvvBP0jwQAtYrqLA0YMMDq1avn7qVrrrmmO6NRNSQTnW8FIHvI | |
D4B/pkyZ4s5E1jm4anfrrLOOtWjRgvk/AEjTrFmzXO3rDTfc0I488kh3L113 | |
3XXdnO4222zjzpGjjiuQW+QHwB8fffSRW6O7wQYbuPW6anetWrWyjTfe2P27 | |
zgvgrHcAiE9rk5599ll3xrvum126dLHXX3/d3UuVJXRWS/PmzW3rrbd2508z | |
twvkDvkByC2d73DPPfdY27ZtbdNNN3XnxV1++eWu3Z111lnuTLmGDRu6557+ | |
v85AAgCs6rfffrO99trLzTH079/fnZ+j8xkj+UHjL+rL9OjRw91TDzvsMM6g | |
BnKE/ADk1qhRo6xRo0a23377uXl1ndN47bXXunZ37rnnuhpMI0eOtNatW7v9 | |
EMoQAIBVzZ8/3+6880578sknbcGCBe5j0fkhQmMwI0aMcPdb8gOQG+QHILc+ | |
/vhj98zT3HqkNkh0fhDt95swYYLdddddbh0TAKCq2DWe8fJDoq8FkD3kByD3 | |
Yp9jsfkh0dcBABJLlh8A5A75AfBfovwAAEgf+QEIBvkB8B/5AQC8Iz8AwSA/ | |
AP4jPwCAd+QHIBjkB8B/5AcA8I78AASD/AD4j/wAAN6RH4BgkB8A/5EfAMA7 | |
8gMQDPID4D/yAwB4R34AgkF+APxHfgAA78gPQDDID4D/yA8A4B35AQgG+QHw | |
H/kBALwjPwD/196dANtY/3Ecb6dNm5LqqqS9KVS3mUqitGihaSJNtCuhRQpp | |
kaJElBRuWZI2qbjiqrRIhDYU2kkLpdIiInz/8/nNPGfOPfc513+en/s8x7nv | |
18yZcu557jln5n5/z+/7W76/ZJA/APEjfwAAf+QPQDLIH4D4kT8AgD/yByAZ | |
5A9A/MgfAMAf+QOQDPIHIH7kDwDgj/wBSAb5AxA/8gcA8Ef+ACSD/AGIH/kD | |
APgjfwCSQf4AxI/8AQD8kT8AySB/AOJH/gAA/sgfgGSQPwDxI38AAH/kD0Ay | |
yB+A+JE/AIA/8gcgGeQPQPzIHwDAH/kDkAzyByB+5A8A4I/8AUgG+QMQP/IH | |
APBH/gAkg/wBiB/5AwD4I38AkkH+AMSP/AEA/JE/AMkgfwDiR/4AAP7IH4Bk | |
kD8A8SN/AAB/5A9AMsgfgPiRPwCAP/IHIBnkD0D8yB8AwB/5A5AM8gcgfuQP | |
AOCP/AFIBvkDED/yBwDwR/4AJIP8AYgf+QMA+CN/AJJB/gDEj/wBAPyRPwDJ | |
IH8A4kf+AAD+yB+AZJA/APEjfwAAf+QPQDLIH4D4kT8AgD/yByAZ5A9A/Mgf | |
AMAf+QOQDPIHIH7kDwDgj/wBSAb5AxA/8gcA8Ef+ACSD/AGIH/kDAPgjfwCS | |
Qf4AxI/8AQD8kT8AySB/AOJH/gAA/sgfgGSQPwDxI38AAH/kD0DF27Bhg61f | |
v77Uc9nyh3Xr1sX50YBKhfwBAPyRPwAVr2/fvtajRw+bMWNG6rnM/GH58uU2 | |
ZMgQ69Kliy1YsCCpjwrkNfIHAPBH/gBUvLZt21rNmjWtSZMmNnLkSFu7dm2p | |
/GHOnDnWoUMHq1WrltWvX9/mzp2b9EcG8hL5AwD4I38AKt68efNswIABVq9e | |
PatTp44VFRXZUUcd5WJv2LBh1rx5c6tevbrr0xQXF9uqVauS/shAXiJ/AAB/ | |
5A9APNasWWMTJkywwsJCq127thUUFLjYa9iwoVWrVs169uxpS5YsSfpjAnmN | |
/AEA/JE/APGaOHGim3uoUqWKi72qVatat27dbMWKFUl/NCDvkT8AgD/yByBe | |
qsU0ZswYF3d6tGnTxpYtW5b0xwIqBfIHAPC3ePFiq1u3rjVo0CDpjwJUGqrR | |
qv3S55xzDrWWgBgNHTrU3fN69eqV9EcBgM3WypUrbfz48VZSUpL0RwEqlaVL | |
l9rs2bOT/hhApaI5d93zVNMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
AAAAAAAAAAAAAAAAAAAAqAhr16610aNH21NPPWWzZs2y7777zpYvX26LFy+2 | |
jz/+2MaNG2dPP/20/fPPP6HXr1692qZOnWrDhg2z5557zv2eZ5991hYtWlTu | |
+27YsMHmz59vo0aNcu+vx/Dhw91n+O+//yrgmwK555dffrFXXnnFioqK7Mkn | |
n7THH3/cRowYYXPnzrV169Zlvc4nfpYtW2Yvv/yyex/FrGJ34sSJ9ueff27q | |
rwfkpH///dfeeecdF3N9+vRxD8XDzJkzKyx+ot4rASAX/f3339akSROrU6eO | |
nXXWWdamTRu79tprrXXr1nbeeefZaaedZg899JCtWrWqzLUrVqywQYMGWbt2 | |
7eyJJ55wberzzz9v9913n3Xs2NHee+8918/JpPZ58uTJds0111i/fv1s7Nix | |
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 | |
tzpsHdH06dPdfk7VrdAYitZxai529OjRri3t3r17mXZWfvrpJ7fuVOfsat2U | |
6uHpbN1p06ZZq1at3Htmq4MB5APFmc527927t40dO9atl9a6asVU+/btXQ6g | |
vkzY+YlR40d9Fc01qoaTxgyUp6g2rMZbtUdba7C1Poq5B+Qr1WlVXWTN7ZX3 | |
UL3VqVOnlrrWJ36i3isBIJep36KxzEGDBrm61XpoDlZrlnQ2brY9CGon1WfR | |
+InO21RbOHz4cDe+M3jw4HJrJ6ntffjhh917KFfRebv9+vVzuYzGaNj3gHyn | |
/Zs6d1rrotUfUTxo/6TWSSie9PNscRA1fjT+qj6O+jvqCz3zzDMuVhXv48aN | |
S501AeSjKVOmuHPeN/bQeFrYvoio8eNzrwSAXKbxkM8++8zt39IaCJ2ho+f+ | |
Hxr/1NzuhAkTXJ0KXav1TxuzevVql59MmjTJXTtz5kzWLKFS0XokzUVorFP7 | |
HPRf5Q1h66QzRY0frZHQPgr1pYqLi938otZ+k7MDG+cTP1HvlQAAAAAAAAAA | |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA | |
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAS/geioIHl | |
"], {{0, 480}, {784, 0}}, { | |
0, 255}, | |
ColorFunction->RGBColor], | |
BoxForm`ImageTag["Byte", ColorSpace -> ColorProfileData[CompressedData[" | |
1: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 | |
wtIiykJmscHilEWvJdMy1DLHcq3lMcseK4ZVsJXEaq3VcavfWcYsNiuPVcU6 | |
zeqzNreOtlZab7Futx6wcbRJsVlks8/mvi3V1s8223atbZttn52V3QS7OXYN | |
dr/aU+z97MX26+3P2r91cHRIc/jWodnhqaOJI9exxLHB8Z4T3SnEaYZTndN1 | |
Z6Kzn3Ou80bnKy6oi7eL2KXG5bIr6urjKnHd6NoxijDKf5R0VN2oW240N7Zb | |
kVuD28PRzNGxoxeNbh79fIzdmIwxq8acHfPZ3ds9z32b+10PQ4/xHos8Wj1e | |
erp48j1rPK970b0iveZ7tXi9GOs6Vjh209jb3gzvCd7ferd5f/Lx9ZH7NPr0 | |
+Nr5ZvrW+t7yM/JL8Fvmd86f4B/mP9//iP/7AJ+AwoADAX8GugXmBu4OfDrO | |
cZxw3LZxXUE2QbygLUGdwazgzODvgztDrEN4IXUhj0JtQwWhO0KfsJ3ZOew9 | |
7Odh7mHysENhbzkBnLmcE+FYeFR4eXh7hGFESkR1xINIm0hRZENkX5R31Oyo | |
E9GE6JjoVdG3uBZcPree2zfed/zc8adjaDFJMdUxj2JdYuWxrRPQCeMnrJlw | |
L84+ThrXHA/iufFr4u8nOCbMSPhpInFiwsSaiY8TPRLnJJ5NYiRNT9qd9CY5 | |
LHlF8t0UpxRlSluqXuqU1PrUt2nhaavTOieNmTR30sV0s3RJeksGKSM1Y0dG | |
/+SIyesmd0/xnlI25eZUx6nFU89PM5uWN+3odL3pvOkHMwmZaZm7Mz/y4nl1 | |
vP4sblZtVh+fw1/PfyYIFawV9AiDhKuFT7KDsldnPxUFidaIesQh4kpxr4Qj | |
qZa8yInO2ZzzNjc+d2fuYF5a3r58cn5m/mGpoTRXerrAsqC4oEPmKiuTdc4I | |
mLFuRp88Rr5DgSimKloKjeCG/ZLSSfmN8mFRcFFN0buZqTMPFhsUS4svzXKZ | |
tXTWk5LIku2z8dn82W1zrOcsnPNwLnvulnnIvKx5bfNt55fO714QtWDXQurC | |
3IW/LHJftHrR68Vpi1tLLUoXlHZ9E/VNQ5lumbzs1reB325egi+RLGlf6rV0 | |
w9LP5YLyCxXuFZUVH5fxl134zuO7qu8Gl2cvb1/hs2LTSuJK6cqbq0JW7Vpt | |
sLpkddeaCWua1rLWlq99vW76uvOVYys3r6euV67vrIqtatlgt2Hlho/V4uob | |
NWE1+2rNa5fWvt0o2Hh1U+imxs0Wmys2f/he8v3tLVFbmuoc6iq3ErcWbX28 | |
LXXb2e1+2+t3mO2o2PFpp3Rn567EXafrfevrd5vvXtGANigbevZM2XNlb/je | |
lka3xi37mPsq9oP9yv2//5D5w80DMQfaDvodbPzR/sfaQ4xD5U1I06ymvmZx | |
c2dLekvH4fGH21oDWw/9NPqnnUesj9QcNT664hj1WOmxweMlx/tPyE70nhSd | |
7Gqb3nb31KRT109PPN1+JubMuZ8jfz51ln32+Lmgc0fOB5w/fMHvQvNFn4tN | |
l7wvHfrF+5dD7T7tTZd9L7dc8b/S2jGu49jVkKsnr4Vf+/k69/rFG3E3Om6m | |
3Lx9a8qtztuC20/v5N158WvRrwN3F9wj3Cu/r3+/8oH5g7p/Of9rX6dP59GH | |
4Q8vPUp6dLeL3/XsN8VvH7tLH9MfVz6xelL/1PPpkZ7Iniu/T/69+5ns2UBv | |
2R8Gf9Q+d3r+45+hf17qm9TX/UL+YvDlslemr3a+Hvu6rT+h/8Gb/DcDb8vf | |
mb7b9d7v/dkPaR+eDMz8SPpY9cn5U+vnmM/3BvMHB2U8OU+9FcBgR7OzAXi5 | |
EwA63DswrsD9w2TNOU/dEM3ZVI3Af8Kas6C6+QDQCC+q7TrnBAD7YXdYoD6S | |
ANVWPTkUoF5ew13bFNlenhouGjzxEN4NDr6yAIDUCsAn+eDgwMbBwU/bYLB3 | |
ADgxQ3O+VDUiPBt876FCV632PwdftX8Dn5uM7w== | |
"], "RGB", "XYZ"], | |
Interleaving -> True], | |
Selectable->False], | |
DefaultBaseStyle->"ImageGraphics", | |
ImageSizeRaw->{784, 480}, | |
PlotRange->{{0, 784}, {0, 480}}]], "Input",ExpressionUUID-> | |
"1cb773c9-7314-4bb8-b82e-f1088d8753b9"], | |
"\n\nBelow is a system of linear equations that describe the image above:\n\n\ | |
", | |
Cell[BoxData[{ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"200", "+", "c"}], "=", | |
RowBox[{"400", "+", "a"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"300", "+", "a"}], "=", | |
RowBox[{"b", "+", "d"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"b", "+", "e"}], "=", "300"}], | |
TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"500", "+", "f"}], "=", | |
RowBox[{"c", "+", "400"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"d", "+", "g"}], "=", | |
RowBox[{"300", "+", "f"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{"400", "=", | |
RowBox[{"e", "+", "g"}]}], TraditionalForm]}],ExpressionUUID-> | |
"d784c79b-93aa-4e13-92eb-ca93aced317f"], | |
"\n\nBelow is the augmented matrix form of the equations above. The columns, \ | |
in order, represent variables ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"a", "~", "g"}], TraditionalForm]],ExpressionUUID-> | |
"904d4c6a-c2f8-46a9-8d42-9300926bffec"], | |
" and the final column the output vector.\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"RoundAbout", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "0", | |
RowBox[{"-", "1"}], "0", "0", "0", "0", | |
RowBox[{"-", "200"}]}, | |
{ | |
RowBox[{"-", "1"}], "1", "0", "1", "0", "0", "0", "300"}, | |
{"0", "1", "0", "0", "1", "0", "0", "300"}, | |
{"0", "0", "1", "0", "0", | |
RowBox[{"-", "1"}], "0", "100"}, | |
{"0", "0", "0", "1", "0", | |
RowBox[{"-", "1"}], "1", "300"}, | |
{"0", "0", "0", "0", "1", "0", "1", "400"} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"ebb3dbd8-fdd9-4f9b-8797-f7034b9e8141"], | |
"\n\nSeveral assumptions were made to define the linear system of equations. \ | |
First, I assumed that what goes in the roundabout comes out of the \ | |
roundabout. This applies to both roundabouts as well as the one-way roads. \ | |
There should be no cars parked at any point within our system. I also assumed \ | |
that cars would actually follow the one-way rule on the road, unlike India." | |
}], "Text", | |
CellChangeTimes->{{3.758184988766899*^9, 3.758184988887452*^9}, { | |
3.758186126663286*^9, 3.758186139366536*^9}, {3.758186312769766*^9, | |
3.758186405505722*^9}, {3.7581864651625032`*^9, 3.758186520862191*^9}, { | |
3.758186616834195*^9, 3.758186691203874*^9}, {3.75818676141154*^9, | |
3.75818676813892*^9}, {3.758186833769376*^9, 3.758187108598755*^9}, { | |
3.75818716588385*^9, 3.758187239313633*^9}, {3.758187271014291*^9, | |
3.758187393811098*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"8d41fa73-04f5-4be7-958c-8b0b77141612"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{"FindInstance", "[", | |
RowBox[{ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"200", "+", "c"}], "\[Equal]", | |
RowBox[{"400", "+", "a"}]}], "&&", | |
RowBox[{ | |
RowBox[{"300", "+", "a"}], "\[Equal]", | |
RowBox[{"b", "+", "d"}]}], "&&", | |
RowBox[{ | |
RowBox[{"b", "+", "e"}], "\[Equal]", "300"}], "&&", | |
RowBox[{ | |
RowBox[{"500", "+", "f"}], "\[Equal]", | |
RowBox[{"c", "+", "400"}]}], "&&", | |
RowBox[{ | |
RowBox[{"d", "+", "g"}], "\[Equal]", | |
RowBox[{"300", "+", "f"}]}], "&&", | |
RowBox[{"400", "\[Equal]", | |
RowBox[{"e", "+", "g"}]}]}], ",", | |
RowBox[{"{", | |
RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], | |
"}"}], ",", "Integers"}], "]"}]], "Input", | |
CellChangeTimes->{{3.758187591352356*^9, 3.758187609110301*^9}, { | |
3.758187862625534*^9, 3.758188054730731*^9}, {3.758188355665909*^9, | |
3.758188448595134*^9}, {3.758188490323762*^9, 3.7581885473990593`*^9}, { | |
3.7581886565285387`*^9, 3.7581886892141027`*^9}, {3.758188724002163*^9, | |
3.758188780700321*^9}, {3.758188845836339*^9, 3.758188859794588*^9}, { | |
3.7581888991579027`*^9, 3.758188912656076*^9}, {3.7581889445371237`*^9, | |
3.758188950990078*^9}, {3.758188989967112*^9, 3.758189041928146*^9}, | |
3.75818912847735*^9, {3.7581896111987267`*^9, 3.758189648038796*^9}, { | |
3.7581897952567377`*^9, 3.7581898373319397`*^9}, {3.758189869066915*^9, | |
3.758190036550124*^9}, {3.758190182625395*^9, 3.75819019621299*^9}, { | |
3.7581902649664288`*^9, 3.758190326000634*^9}, {3.758190430842492*^9, | |
3.758190590599321*^9}, {3.758191205889489*^9, 3.758191228066749*^9}, { | |
3.758191279290902*^9, 3.758191354316283*^9}, {3.7581913880623693`*^9, | |
3.758191431747005*^9}, {3.7581915122083473`*^9, 3.7581915153429527`*^9}, { | |
3.7581915837992973`*^9, 3.758191704075137*^9}, {3.758191734895432*^9, | |
3.758191751047529*^9}, 3.758191861326277*^9, {3.7581960317870293`*^9, | |
3.758196032228921*^9}, {3.7581960964512978`*^9, 3.758196125534109*^9}, { | |
3.758196201021516*^9, 3.758196228985368*^9}}, | |
CellLabel->"In[1]:=",ExpressionUUID->"d923b046-180f-4a75-87cb-672596142f09"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"{", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"a", "\[Rule]", "0"}], ",", | |
RowBox[{"b", "\[Rule]", "0"}], ",", | |
RowBox[{"c", "\[Rule]", "200"}], ",", | |
RowBox[{"d", "\[Rule]", "300"}], ",", | |
RowBox[{"e", "\[Rule]", "300"}], ",", | |
RowBox[{"f", "\[Rule]", "100"}], ",", | |
RowBox[{"g", "\[Rule]", "100"}]}], "}"}], "}"}], | |
TraditionalForm]], "Output", | |
CellChangeTimes->{ | |
3.75819004331704*^9, {3.758190185210181*^9, 3.758190222221665*^9}, { | |
3.7581902659718113`*^9, 3.7581902859888067`*^9}, {3.7581904326495533`*^9, | |
3.7581905788901863`*^9}, {3.758191285194768*^9, 3.7581912959122458`*^9}, | |
3.758191338941084*^9, 3.758191381206204*^9, 3.758191432839548*^9, | |
3.7581915180577106`*^9, 3.75819160702557*^9, {3.758191675727347*^9, | |
3.758191704447757*^9}, {3.758191737022758*^9, 3.758191751505323*^9}, | |
3.758191862020339*^9, {3.7581960225690928`*^9, 3.758196060191081*^9}, { | |
3.758196115859167*^9, 3.758196140843431*^9}, {3.758196204284141*^9, | |
3.7581962602557077`*^9}}, | |
CellLabel->"Out[1]=",ExpressionUUID->"b8a2e3d4-2422-4be6-b992-7e8314e45a84"] | |
}, Open ]], | |
Cell[TextData[{ | |
"As computed above, the number of vehicles that will use each road segment \ | |
in the proposed system every hour is:\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{ | |
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], ")"}], | |
"=", | |
RowBox[{"(", | |
RowBox[{ | |
"0", ",", "0", ",", "200", ",", "300", ",", "300", ",", "100", ",", | |
"100"}], ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"91afea2f-a655-4ec4-a155-7be13e326eba"], | |
"\n\n(NOTE: I tried very hard and spent a very large amount of time trying \ | |
to solve this augmented matrix in matrix form, but could not find a way for \ | |
Mathematica to compute a combination of variables without using negative \ | |
values. As the number of cars cannot be negative, I had to find a different \ | |
way to solve. With 7 variables and 6 equations, the system is underdetermined \ | |
and here, it has infinitely many answers.)" | |
}], "Text", | |
CellChangeTimes->{{3.7581918712105713`*^9, 3.7581920287336493`*^9}, { | |
3.7581920904508533`*^9, 3.758192111323793*^9}, {3.7581924288321133`*^9, | |
3.758192469207809*^9}, {3.7581926707268457`*^9, 3.758192670726944*^9}, { | |
3.814955754399906*^9, 3.814955760278274*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"3bd695d1-2d4d-43e5-9ab9-639b0e34fb0d"], | |
Cell["\<\ | |
The roads in total will need to accommodate about 1000 cars in total, per \ | |
hour. However, as the solution shows, there is a polarization of the roads \ | |
which cars travel in. Cars travel by far the most in the vertical roads \ | |
(c,d,e) while only some in (f,g) and none in (a,b). For example, if we look \ | |
at the upper-rightmost roundabout, all cars that go out are exclusively from \ | |
road e. The traffic might congest, but if some of those people who wanted to \ | |
get out from the roundabout came from b, there would be less cars needed to \ | |
use road e. Cars should be encouraged to follow routes a and b especially, \ | |
and avoid d and e.\ | |
\>", "Text", | |
CellChangeTimes->{{3.758192655337646*^9, 3.758192696199242*^9}, { | |
3.7581927331440687`*^9, 3.758192735318082*^9}, {3.758192772769212*^9, | |
3.758192969500922*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"90055568-58de-44d4-a052-50353a9eae39"], | |
Cell["\<\ | |
Looking at the list above, Segments a and b can be totally closed and still \ | |
maintain traffic flow predicted by the electronic sensors.\ | |
\>", "Text", | |
CellChangeTimes->{{3.758193168568654*^9, 3.758193209874778*^9}, | |
3.758193323001251*^9, {3.8149556988826838`*^9, 3.814955725623838*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"fbe10508-2ddd-46d7-9f90-c22c5e5d0d08"], | |
Cell[CellGroupData[{ | |
Cell["Some changes to the system...", "Subsection", | |
CellChangeTimes->{{3.758193329787612*^9, 3.758193401782825*^9}, { | |
3.814955773817222*^9, | |
3.814955780854649*^9}},ExpressionUUID->"384aeb62-6b40-42c8-86cf-\ | |
cc4bc1705756"], | |
Cell[TextData[{ | |
"The system of linear equations that describe the traffic after large events \ | |
(with the same assumptions as part a) are:\n\n", | |
Cell[BoxData[{ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"200", "+", "c"}], "=", | |
RowBox[{"400", "+", "a"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"900", "+", "a"}], "=", | |
RowBox[{"b", "+", "d"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"b", "+", "e"}], "=", "600"}], | |
TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"500", "+", "f"}], "=", | |
RowBox[{"c", "+", "500"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{"d", "+", "g"}], "=", | |
RowBox[{"500", "+", "f"}]}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{"400", "=", | |
RowBox[{"e", "+", "g"}]}], TraditionalForm]}],ExpressionUUID-> | |
"61f9f3bb-e049-4161-b76f-e6f545e9f77b"], | |
"\n\nBelow is the augmented matrix form of the above system. \n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"LargeEvent", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "0", | |
RowBox[{"-", "1"}], "0", "0", "0", "0", | |
RowBox[{"-", "200"}]}, | |
{ | |
RowBox[{"-", "1"}], "1", "0", "1", "0", "0", "0", "900"}, | |
{"0", "1", "0", "0", "1", "0", "0", "600"}, | |
{"0", "0", "1", "0", "0", | |
RowBox[{"-", "1"}], "0", "0"}, | |
{"0", "0", "0", "1", "0", | |
RowBox[{"-", "1"}], "1", "500"}, | |
{"0", "0", "0", "0", "1", "0", "1", "400"} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"56aa56af-ce9d-4b49-9377-9da8bc5a3822"] | |
}], "Text", | |
CellChangeTimes->{{3.758193605832019*^9, 3.758193611250348*^9}, { | |
3.758193722403454*^9, 3.758193771647758*^9}, {3.75819380799056*^9, | |
3.758193928191008*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"60aeeb08-a4e1-4f74-bd96-8d198853ebe8"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{"FindInstance", "[", | |
RowBox[{ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"200", "+", "c"}], "\[Equal]", | |
RowBox[{"400", "+", "a"}]}], "&&", | |
RowBox[{ | |
RowBox[{"900", "+", "a"}], "\[Equal]", | |
RowBox[{"b", "+", "d"}]}], "&&", | |
RowBox[{ | |
RowBox[{"b", "+", "e"}], "\[Equal]", "600"}], "&&", | |
RowBox[{ | |
RowBox[{"500", "+", "f"}], "\[Equal]", | |
RowBox[{"c", "+", "500"}]}], "&&", | |
RowBox[{ | |
RowBox[{"d", "+", "g"}], "\[Equal]", | |
RowBox[{"500", "+", "f"}]}], "&&", | |
RowBox[{"400", "\[Equal]", | |
RowBox[{"e", "+", "g"}]}], "&&", | |
RowBox[{"a", ">=", "0"}], "&&", | |
RowBox[{"b", ">=", "0"}], "&&", | |
RowBox[{"c", ">=", "0"}], "&&", | |
RowBox[{"d", ">=", "0"}], "&&", | |
RowBox[{"e", ">=", "0"}], "&&", | |
RowBox[{"f", ">=", "0"}], "&&", | |
RowBox[{"g", ">=", "0"}]}], ",", | |
RowBox[{"{", | |
RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], | |
"}"}], ",", "Integers"}], "]"}]], "Input", | |
CellChangeTimes->{{3.758194367265066*^9, 3.7581943674367247`*^9}, { | |
3.758194707763365*^9, 3.7581947249779387`*^9}, {3.758194790493092*^9, | |
3.758194801171921*^9}, 3.758194942645043*^9, 3.75819500444446*^9, { | |
3.758195061342751*^9, 3.7581950908523397`*^9}, {3.758196268841961*^9, | |
3.758196272013321*^9}}, | |
CellLabel->"In[3]:=",ExpressionUUID->"0fc5ef7c-8844-4bfe-8abd-1d0840dbca8f"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"{", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"a", "\[Rule]", "0"}], ",", | |
RowBox[{"b", "\[Rule]", "200"}], ",", | |
RowBox[{"c", "\[Rule]", "200"}], ",", | |
RowBox[{"d", "\[Rule]", "700"}], ",", | |
RowBox[{"e", "\[Rule]", "400"}], ",", | |
RowBox[{"f", "\[Rule]", "200"}], ",", | |
RowBox[{"g", "\[Rule]", "0"}]}], "}"}], "}"}], | |
TraditionalForm]], "Output", | |
CellChangeTimes->{{3.758194365019143*^9, 3.758194367981614*^9}, { | |
3.7581947121642303`*^9, 3.7581947264027033`*^9}, {3.7581947924618473`*^9, | |
3.758194802468289*^9}, {3.758195063044437*^9, 3.758195105387959*^9}, { | |
3.758196265886557*^9, 3.758196276563274*^9}}, | |
CellLabel->"Out[3]=",ExpressionUUID->"1e8116f6-d6e8-4d97-8712-f761675b2ca6"] | |
}, Open ]], | |
Cell["\<\ | |
We see that due to the event, we observe an increase in traffic particularly \ | |
in segment d. On the other hand, segments a and g are not getting any cars. \ | |
To have a more spread out traffic, we can use signs and encourage passengers \ | |
to use segments a and g. With the expectation that the signs will work and we \ | |
successfully prevent from more than 450 cars to use segment d per hour, we \ | |
can expect the following distribution, where cars are more sparse and less \ | |
congested:\ | |
\>", "Text", | |
CellChangeTimes->{{3.75819510822859*^9, 3.7581952831092567`*^9}, { | |
3.758195567659432*^9, 3.7581955822341747`*^9}, {3.758195625637336*^9, | |
3.758195627456821*^9}, {3.758195708514884*^9, 3.758195711425872*^9}, { | |
3.758195751574059*^9, 3.7581957794031677`*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"6ecaa955-f7ae-4481-8667-3782de86e210"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{"FindInstance", "[", | |
RowBox[{ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"200", "+", "c"}], "\[Equal]", | |
RowBox[{"400", "+", "a"}]}], "&&", | |
RowBox[{ | |
RowBox[{"900", "+", "a"}], "\[Equal]", | |
RowBox[{"b", "+", "d"}]}], "&&", | |
RowBox[{ | |
RowBox[{"b", "+", "e"}], "\[Equal]", "600"}], "&&", | |
RowBox[{ | |
RowBox[{"500", "+", "f"}], "\[Equal]", | |
RowBox[{"c", "+", "500"}]}], "&&", | |
RowBox[{ | |
RowBox[{"d", "+", "g"}], "\[Equal]", | |
RowBox[{"500", "+", "f"}]}], "&&", | |
RowBox[{"400", "\[Equal]", | |
RowBox[{"e", "+", "g"}]}], "&&", | |
RowBox[{"0", "\[LessEqual]", "a"}], "&&", | |
RowBox[{"b", "\[LessEqual]", "450"}], "&&", | |
RowBox[{"d", "\[LessEqual]", "450"}]}], ",", | |
RowBox[{"{", | |
RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], | |
"}"}], ",", "Integers"}], "]"}]], "Input", | |
CellChangeTimes->{{3.758195288785862*^9, 3.7581955526329737`*^9}, { | |
3.758195590666443*^9, 3.758195677446146*^9}, {3.758195723879879*^9, | |
3.758195746737835*^9}, {3.758196281131996*^9, 3.75819628333716*^9}}, | |
CellLabel->"In[5]:=",ExpressionUUID->"bd3f8b2d-88b8-4e53-9dfa-e32ae8593dd1"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"{", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"a", "\[Rule]", "0"}], ",", | |
RowBox[{"b", "\[Rule]", "450"}], ",", | |
RowBox[{"c", "\[Rule]", "200"}], ",", | |
RowBox[{"d", "\[Rule]", "450"}], ",", | |
RowBox[{"e", "\[Rule]", "150"}], ",", | |
RowBox[{"f", "\[Rule]", "200"}], ",", | |
RowBox[{"g", "\[Rule]", "250"}]}], "}"}], "}"}], | |
TraditionalForm]], "Output", | |
CellChangeTimes->{{3.75819532932672*^9, 3.758195351077338*^9}, { | |
3.758195395235713*^9, 3.758195446851923*^9}, {3.758195490718357*^9, | |
3.758195553174192*^9}, {3.758195594136346*^9, 3.7581956311151752`*^9}, { | |
3.758195673512293*^9, 3.758195679581107*^9}, {3.758195724332356*^9, | |
3.758195746982047*^9}, 3.758195780682939*^9, {3.758196278987667*^9, | |
3.758196288867057*^9}}, | |
CellLabel->"Out[5]=",ExpressionUUID->"f2513d0f-cf7d-47c1-918a-421b6e884b24"] | |
}, Open ]], | |
Cell["\<\ | |
It is interesting that we want to minimize the use of segment a in order to \ | |
reduce traffic in segment d. This actually makes sense because segment a is \ | |
an inflow to the top middle roundabout, where 900 cars flood in per hour. \ | |
This type of phenomenon explains why even in real life, there are traffic \ | |
barricades at certain roads in busy times, which used to be counterintuitive \ | |
to me as a driver: \[OpenCurlyDoubleQuote]If traffic is so bad, isn\ | |
\[CloseCurlyQuote]t it better for people to go whichever way they want rather \ | |
than limiting their options in an already congested traffic?\ | |
\[CloseCurlyDoubleQuote] But this type of analysis helped me understand that \ | |
in some cases it is perfectly reasonable to do so.\ | |
\>", "Text", | |
CellChangeTimes->{{3.758195800981069*^9, 3.758195945087596*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"fcb20ae1-04bb-4f8c-9a53-3bab48366392"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[TextData[StyleBox["some random shit", | |
FontSlant->"Italic"]], "Section", | |
CellChangeTimes->{{3.7581565568162394`*^9, 3.758156593662631*^9}, { | |
3.814955793183622*^9, | |
3.814955803546649*^9}},ExpressionUUID->"5a33a389-0bfc-4cdf-9d7f-\ | |
de902dd1f317"], | |
Cell[CellGroupData[{ | |
Cell[TextData[{ | |
"2\[Cross]2 matrices ", | |
StyleBox["B", | |
FontSlant->"Italic"], | |
" and ", | |
StyleBox["C", | |
FontSlant->"Italic"], | |
" such that ", | |
StyleBox["BC = -CB", | |
FontSlant->"Italic"], | |
" (excluding the case ", | |
StyleBox["BC = 0", | |
FontSlant->"Italic"], | |
")." | |
}], "Subsection", | |
CellChangeTimes->{{3.758156599966474*^9, 3.758156642270175*^9}, | |
3.758157353657495*^9, | |
3.814955797355893*^9},ExpressionUUID->"a565f71f-f745-45bf-b5e1-\ | |
7727f5980758"], | |
Cell[TextData[{ | |
"Given matrices ", | |
Cell[BoxData[ | |
FormBox["B", TraditionalForm]],ExpressionUUID-> | |
"181b0c70-c00e-44fd-926b-89f77f79f1e7"], | |
" and ", | |
Cell[BoxData[ | |
FormBox["C", TraditionalForm]],ExpressionUUID-> | |
"50683e1d-067a-40ff-adfd-a7d62eff8b2d"], | |
" where\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"B", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"a", "b"}, | |
{"c", "d"} | |
}], "\[NoBreak]", ")"}]}], ",", " ", | |
RowBox[{"C", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"e", "f"}, | |
{"g", "h"} | |
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID-> | |
"b1f9ad16-56d8-4983-ab3b-46c4caf1d804"], | |
",\n\nUtilizing #computationaltools (Wolfram Mathematica);" | |
}], "Text", | |
InitializationCell->True, | |
CellChangeTimes->{{3.7581773418434134`*^9, 3.7581773799837627`*^9}, { | |
3.758177427839078*^9, 3.7581774522832336`*^9}, {3.758177604557362*^9, | |
3.7581777509809*^9}, {3.758177790842225*^9, 3.7581779719084167`*^9}, { | |
3.758178011703683*^9, 3.7581780626098967`*^9}, {3.758178110433548*^9, | |
3.758178392761195*^9}, {3.758178846633193*^9, 3.758178847063583*^9}, { | |
3.758179548366592*^9, 3.7581795886310673`*^9}, {3.7581796230210876`*^9, | |
3.758179645908187*^9}, {3.758183293845529*^9, 3.758183332148494*^9}, { | |
3.758183478991757*^9, 3.758183560438321*^9}, {3.7581836263348722`*^9, | |
3.758183747315702*^9}, {3.758183810323175*^9, 3.75818383753651*^9}, { | |
3.758184003708724*^9, 3.758184070919958*^9}, {3.758184158354374*^9, | |
3.758184159369684*^9}, {3.7581859427312107`*^9, 3.7581859494010963`*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"fb6b4aad-aa7e-415a-86d3-e4c195272052"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"m1", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"a", ",", "b"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"c", ",", "d"}], "}"}]}], "}"}]}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"m2", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"e", ",", "f"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"g", ",", "h"}], "}"}]}], "}"}]}], | |
"\[IndentingNewLine]"}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"Solve", "[", | |
RowBox[{ | |
RowBox[{"m1", ".", "m2"}], "\[Equal]", | |
RowBox[{"-", | |
RowBox[{"m2", ".", "m1"}]}]}], "]"}], "\[LeftDoubleBracket]", "1", | |
"\[RightDoubleBracket]"}]}], "Input", | |
CellChangeTimes->{{3.7581833575237913`*^9, 3.7581834004025307`*^9}, { | |
3.758183449821548*^9, 3.758183460794695*^9}, 3.7581837492440033`*^9, { | |
3.758183784727639*^9, 3.758183786589344*^9}, {3.7581838192356853`*^9, | |
3.75818399483636*^9}, {3.758184082152938*^9, 3.758184082984474*^9}, { | |
3.758184202249531*^9, 3.758184213252145*^9}}, | |
CellLabel->"In[6]:=",ExpressionUUID->"8a5939e6-c011-4f1a-b8d6-97675e695e8c"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"a", "\[Rule]", | |
RowBox[{"-", "d"}]}], ",", | |
RowBox[{"e", "\[Rule]", | |
FractionBox[ | |
RowBox[{ | |
RowBox[{"b", " ", "g"}], "+", | |
RowBox[{"c", " ", "f"}]}], | |
RowBox[{"2", " ", "d"}]]}], ",", | |
RowBox[{"h", "\[Rule]", | |
FractionBox[ | |
RowBox[{ | |
RowBox[{"-", | |
RowBox[{"b", " ", "g"}]}], "-", | |
RowBox[{"c", " ", "f"}]}], | |
RowBox[{"2", " ", "d"}]]}]}], "}"}], TraditionalForm]], "Output", | |
CellChangeTimes->{{3.758183393334085*^9, 3.7581834008714*^9}, | |
3.758183461178112*^9, 3.7581837541225243`*^9, 3.758183786984577*^9, { | |
3.758183822620576*^9, 3.758183930464081*^9}, {3.758183977546163*^9, | |
3.758183995253324*^9}, {3.758184072250546*^9, 3.758184083720839*^9}, { | |
3.758184185136574*^9, 3.758184225874031*^9}, 3.758184965056061*^9, { | |
3.758196298696418*^9, 3.758196304985538*^9}}, | |
CellLabel->"Out[8]=",ExpressionUUID->"989a943f-be74-42b4-b7d0-4e473d55560f"] | |
}, Open ]], | |
Cell[TextData[{ | |
"One example combination that meets this relationship would be:\n ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{ | |
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", | |
"h"}], ")"}], "=", | |
RowBox[{"(", | |
RowBox[{ | |
RowBox[{"-", "1"}], ",", "1", ",", "1", ",", "1", ",", "1", ",", "1", | |
",", "1", ",", | |
RowBox[{"-", "1"}]}], ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"7d208c16-6f5d-4b55-b93e-8e9b430806bf"], | |
"\n \n Now to test it:" | |
}], "Text", | |
CellChangeTimes->{{3.758184255246305*^9, 3.758184380081686*^9}, { | |
3.758184504689212*^9, 3.758184546209672*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"464546e2-85f2-4053-b608-6ead8e29f722"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", "1"}], "}"}]}], "}"}], ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"1", ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", | |
RowBox[{"-", "1"}]}], "}"}]}], "}"}]}], "\[Equal]", | |
RowBox[{"-", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"1", ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", | |
RowBox[{"-", "1"}]}], "}"}]}], "}"}], ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", "1"}], "}"}]}], "}"}]}]}]}]], "Input", | |
CellChangeTimes->{{3.7581843836663437`*^9, 3.758184438968062*^9}, { | |
3.758184556653015*^9, 3.758184631563636*^9}}, | |
CellLabel->"In[9]:=",ExpressionUUID->"4b8b1cdd-f2f5-4905-9bc0-a101e47c34d1"], | |
Cell[BoxData["True"], "Output", | |
CellChangeTimes->{{3.758184423761058*^9, 3.7581844395057373`*^9}, { | |
3.7581845705047092`*^9, 3.7581846320917463`*^9}, 3.758196309162313*^9}, | |
CellLabel->"Out[9]=",ExpressionUUID->"b11b9e95-9412-4083-a7d2-9019213cbdd9"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[TextData[{ | |
"A non-zero matrix ", | |
StyleBox["M", | |
FontSlant->"Italic"], | |
" so that ", | |
Cell[BoxData[ | |
FormBox[ | |
SuperscriptBox["M", "2"], TraditionalForm]],ExpressionUUID-> | |
"83a78d57-8003-4d5b-9250-1a359c1ae9e2"], | |
"= 0." | |
}], "Subsection", | |
CellChangeTimes->{{3.75815724923099*^9, 3.758157349640583*^9}, | |
3.814955809918014*^9},ExpressionUUID->"6a9f05ef-76a9-4b18-a6c9-\ | |
d42d256d9443"], | |
Cell[TextData[{ | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"M", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"a", "b"}, | |
{"c", "d"} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"eacefa74-ff69-48b7-8985-49ccba4e929f"], | |
"\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
SuperscriptBox["M", "2"], "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
RowBox[{ | |
SuperscriptBox["a", "2"], "+", "bc"}], | |
RowBox[{"ab", "+", "bd"}]}, | |
{ | |
RowBox[{"ca", "+", "dc"}], | |
RowBox[{"cb", "+", | |
SuperscriptBox["d", "2"]}]} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"e8a45905-31ca-4f55-bb18-9942b73b300a"], | |
"\n\nThis gives us the four equations to satisfy:\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
SuperscriptBox["a", "2"], "=", | |
RowBox[{"-", "bc"}]}], TraditionalForm]],ExpressionUUID-> | |
"2ea01697-880f-4d1a-b6c2-6ce080d21771"], | |
"\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"ab", "=", | |
RowBox[{"-", "bd"}]}], TraditionalForm]],ExpressionUUID-> | |
"04a688d9-1d1a-4614-8e9f-d63863636ea7"], | |
"\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"ca", "=", | |
RowBox[{"-", "dc"}]}], TraditionalForm]],ExpressionUUID-> | |
"128fb850-63cc-4c4c-8516-86c057669922"], | |
"\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
SuperscriptBox["d", "2"], "=", | |
RowBox[{"-", "cb"}]}], TraditionalForm]],ExpressionUUID-> | |
"0c20b8b1-7bb9-4a4d-9350-300e1746e053"], | |
"\n\nFurthermore, by noticing the first and fourth equation, we can \ | |
concatenate;\[LineSeparator]", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
SuperscriptBox["a", "2"], "=", | |
RowBox[{"-", "bc"}]}], TraditionalForm]],ExpressionUUID-> | |
"92b08510-0716-4409-907d-936cc862c88f"], | |
" = ", | |
Cell[BoxData[ | |
FormBox[ | |
SuperscriptBox["d", "2"], TraditionalForm]],ExpressionUUID-> | |
"73ba2f58-29cd-492c-bf36-b84d32391120"], | |
"\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"ab", "=", | |
RowBox[{"-", "bd"}]}], TraditionalForm]],ExpressionUUID-> | |
"28203e21-b253-484d-a31d-c6a8cc1c1df2"], | |
"\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"ca", "=", | |
RowBox[{"-", "dc"}]}], TraditionalForm]],ExpressionUUID-> | |
"9b258ad9-1d2e-44ab-8ae5-dafd19b64aaf"], | |
"\n\nNow, from the second as well as the third equation, we can say that ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"a", "=", | |
RowBox[{"-", "d"}]}], TraditionalForm]],ExpressionUUID-> | |
"89b2ed63-229a-4ab0-be42-c7dffb09f697"], | |
".\nFrom the first equation, ", | |
Cell[BoxData[ | |
FormBox["bc", TraditionalForm]],ExpressionUUID-> | |
"e766a139-00e4-4342-a13b-aa08f3dd5290"], | |
" must be negative, meaning b and c will have opposite signs.\n\nTo make \ | |
computations easier, we simply consider ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"a", ",", "b", ",", "c", ",", "d"}], TraditionalForm]], | |
ExpressionUUID->"71e35532-3250-4610-b7e5-5401ca6a6cc5"], | |
" whose magnitude are all the same.\nOne combination that satisfies the \ | |
given equations would be:\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{"a", ",", "b", ",", "c", ",", "d"}], ")"}], "=", | |
RowBox[{"(", | |
RowBox[{"1", ",", "1", ",", | |
RowBox[{"-", "1"}], ",", | |
RowBox[{"-", "1"}]}], ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"c76b0516-25b9-4406-a0de-523495fb551a"], | |
"\n\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"M", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "1"}, | |
{ | |
RowBox[{"-", "1"}], | |
RowBox[{"-", "1"}]} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"b58763af-9f57-48c6-9791-6ff5aa820cf5"] | |
}], "Text", | |
CellChangeTimes->{{3.758179710587557*^9, 3.758180235160323*^9}, { | |
3.7581802904091682`*^9, 3.7581803678942537`*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"6e0be7ee-507b-4d64-9de6-23addf252f4f"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"mat", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"1", ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"-", "1"}], ",", | |
RowBox[{"-", "1"}]}], "}"}]}], "}"}]}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Example matrix: \>\"", ",", | |
RowBox[{"mat", "//", "MatrixForm"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Squared: \>\"", ",", | |
RowBox[{ | |
RowBox[{"MatrixPower", "[", | |
RowBox[{"mat", ",", "2"}], "]"}], "//", "MatrixForm"}]}], | |
"]"}]}], "Input", | |
CellChangeTimes->{{3.758179975323155*^9, 3.758179976269093*^9}, { | |
3.758180395749196*^9, 3.7581805029001293`*^9}, {3.7581805357376328`*^9, | |
3.758180590005188*^9}}, | |
CellLabel->"In[10]:=",ExpressionUUID->"291c551e-c878-4032-89e3-e12237091a67"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Example matrix: \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "1"}, | |
{ | |
RowBox[{"-", "1"}], | |
RowBox[{"-", "1"}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["Example matrix: ", | |
MatrixForm[{{1, 1}, {-1, -1}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Squared: \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"0", "0"}, | |
{"0", "0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["Squared: ", | |
MatrixForm[{{0, 0}, {0, 0}}]], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{ | |
3.7581805903452997`*^9, {3.758196386812023*^9, | |
3.758196393224164*^9}},ExpressionUUID->"2a78dc51-7367-4592-b06a-\ | |
7d25eac8e32b"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{ | |
RowBox[{"Solve", "[", | |
RowBox[{ | |
RowBox[{"MatrixPower", "[", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"a", ",", "b"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"c", ",", "d"}], "}"}]}], "}"}], ",", "2"}], "]"}], | |
"\[Equal]", "0"}], "]"}], "\[LeftDoubleBracket]", "1", | |
"\[RightDoubleBracket]"}]], "Input", | |
CellChangeTimes->{{3.758184689958498*^9, 3.758184721356306*^9}, { | |
3.7581847541996117`*^9, 3.7581847629249563`*^9}, {3.758184856404763*^9, | |
3.7581848779073057`*^9}, 3.758196398946151*^9}, | |
CellLabel->"In[14]:=",ExpressionUUID->"2d1f6fcf-3c02-494a-8674-6077df84a19f"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"c", "\[Rule]", | |
RowBox[{"-", | |
FractionBox[ | |
SuperscriptBox["a", "2"], "b"]}]}], ",", | |
RowBox[{"d", "\[Rule]", | |
RowBox[{"-", "a"}]}]}], "}"}], TraditionalForm]], "Output", | |
CellChangeTimes->{{3.758196414146433*^9, 3.7581964192848587`*^9}}, | |
CellLabel->"Out[14]=",ExpressionUUID->"946788f3-e97e-4644-a025-256fe6ef9b5f"] | |
}, Open ]], | |
Cell["We see that the above example meets the conditions.", "Text", | |
CellChangeTimes->{{3.758184893954987*^9, 3.758184916660231*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"b36cc10e-a6e6-43d4-86eb-eba817fc5e0e"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[TextData[{ | |
"Invertible matrices ", | |
StyleBox["A", | |
FontSlant->"Italic"], | |
" and ", | |
StyleBox["B", | |
FontSlant->"Italic"], | |
" so that ", | |
StyleBox["A + B", | |
FontSlant->"Italic"], | |
" is not invertible." | |
}], "Subsection", | |
CellChangeTimes->{{3.758157358387443*^9, 3.758157394034487*^9}, { | |
3.758157435015724*^9, 3.7581574352384167`*^9}, | |
3.814955814869218*^9},ExpressionUUID->"dc393c65-d07e-421a-a8b5-\ | |
5d5ea25a5cfa"], | |
Cell[TextData[{ | |
"Matrices are not invertible when the determinant of the matrix is 0. Given \ | |
matrices ", | |
Cell[BoxData[ | |
FormBox["A", TraditionalForm]],ExpressionUUID-> | |
"0ed2571e-1294-4584-a4a0-80544ffb560a"], | |
" and ", | |
Cell[BoxData[ | |
FormBox["B", TraditionalForm]],ExpressionUUID-> | |
"b6daf446-062e-495b-8c2d-0d985a0261a4"], | |
", \n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"A", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"a", "b"}, | |
{"c", "d"} | |
}], "\[NoBreak]", ")"}]}], ",", | |
RowBox[{"B", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"e", "f"}, | |
{"g", "h"} | |
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID-> | |
"3ebb60d6-c517-4af4-a4a6-0fc268bd309f"], | |
"\n\nA+B can be computed as \n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"A", "+", "B"}], "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
RowBox[{"a", "+", "e"}], | |
RowBox[{"b", "+", "f"}]}, | |
{ | |
RowBox[{"c", "+", "g"}], | |
RowBox[{"d", "+", "h"}]} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"1fa66ea4-7057-4061-9e3f-ff206bd6cb9d"], | |
"\n\[LineSeparator]Now, we want the determinant to be 0 so this means \n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{"a", "+", "e"}], ")"}], | |
RowBox[{"(", | |
RowBox[{"d", "+", "h"}], ")"}]}], "=", | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{"f", "+", "b"}], ")"}], | |
RowBox[{"(", | |
RowBox[{"g", "+", "c"}], ")"}]}]}], TraditionalForm]],ExpressionUUID-> | |
"b095ee00-8b4b-4a3a-b944-3c3e05200fb9"], | |
"\n\nTo meet this, we can simply have\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"a", "=", "f"}], ",", | |
RowBox[{"b", "=", "e"}], ",", | |
RowBox[{"d", "=", "g"}], ",", | |
RowBox[{"c", "=", "h"}]}], TraditionalForm]],ExpressionUUID-> | |
"2061fab3-e0eb-442f-a3fa-ef174850e820"], | |
"\n\nThus, an example of matrices ", | |
Cell[BoxData[ | |
FormBox["A", TraditionalForm]],ExpressionUUID-> | |
"ef5cfb8e-1a79-420c-9999-770b21177ec4"], | |
" and ", | |
Cell[BoxData[ | |
FormBox["B", TraditionalForm]],ExpressionUUID-> | |
"f283baf5-c6da-4f61-aa71-5be535136588"], | |
" where ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"A", "+", "B"}], TraditionalForm]],ExpressionUUID-> | |
"28a5a315-7a8f-4f5e-ae2c-be65c6581ebc"], | |
" is not invertible is\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"A", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "2"}, | |
{"3", "4"} | |
}], "\[NoBreak]", ")"}]}], ",", | |
RowBox[{"B", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"2", "1"}, | |
{"4", "3"} | |
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID-> | |
"ac381b3d-f323-445f-a34d-f827db78547f"], | |
"." | |
}], "Text", | |
CellChangeTimes->{{3.758180690539927*^9, 3.758180703487637*^9}, { | |
3.758180754102562*^9, 3.7581808553128853`*^9}, {3.7581814377713423`*^9, | |
3.758181743198872*^9}, {3.758181787576058*^9, 3.758181816020547*^9}, | |
3.7581818513540163`*^9}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"3902d859-2b2a-4ae7-97f2-7b3e8ef0bc2d"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"mat1", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"1", ",", "2"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"3", ",", "4"}], "}"}]}], "}"}]}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"mat2", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"2", ",", "1"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"4", ",", "3"}], "}"}]}], "}"}]}], | |
"\[IndentingNewLine]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Example matrices: A= \>\"", ",", | |
RowBox[{"mat1", "//", "MatrixForm"}], ",", "\"\< B= \>\"", ",", | |
RowBox[{"mat2", "//", "MatrixForm"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= \>\"", ",", | |
RowBox[{ | |
RowBox[{"Inverse", "[", "mat1", "]"}], "//", "MatrixForm"}], ",", | |
"\"\< \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= \>\"", ",", | |
RowBox[{ | |
RowBox[{"Inverse", "[", "mat2", "]"}], "//", "MatrixForm"}]}], "]"}], | |
"\[IndentingNewLine]"}], "\[IndentingNewLine]", | |
RowBox[{"mat3", ":=", | |
RowBox[{"mat1", "+", "mat2"}]}], "\[IndentingNewLine]", | |
RowBox[{"Inverse", "[", "mat3", "]"}]}], "Input", | |
CellChangeTimes->{{3.758181853902*^9, 3.758181965612356*^9}, { | |
3.758182000703251*^9, 3.75818206539837*^9}, {3.758182350295936*^9, | |
3.758182371320956*^9}}, | |
CellLabel->"In[15]:=",ExpressionUUID->"e190552c-41e9-4337-9175-4fc36dab5f9d"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Example matrices: A= \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "2"}, | |
{"3", "4"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]], "\[InvisibleSpace]", "\<\" B= \"\>", | |
"\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"2", "1"}, | |
{"4", "3"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["Example matrices: A= ", | |
MatrixForm[{{1, 2}, {3, 4}}], " B= ", | |
MatrixForm[{{2, 1}, {4, 3}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Inverted: \\!\\(\\*SuperscriptBox[\\(A\\), \\(-1\\)]\\)= \ | |
\"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
RowBox[{"-", "2"}], "1"}, | |
{ | |
FractionBox["3", "2"], | |
RowBox[{"-", | |
FractionBox["1", "2"]}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]], | |
"\[InvisibleSpace]", "\<\" \\!\\(\\*SuperscriptBox[\\(B\\), \ | |
\\(-1\\)]\\)= \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
FractionBox["3", "2"], | |
RowBox[{"-", | |
FractionBox["1", "2"]}]}, | |
{ | |
RowBox[{"-", "2"}], "1"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= ", | |
MatrixForm[{{-2, 1}, { | |
Rational[3, 2], | |
Rational[-1, 2]}}], " \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= ", | |
MatrixForm[{{ | |
Rational[3, 2], | |
Rational[-1, 2]}, {-2, 1}}]], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{{3.75818191733664*^9, 3.758181922203621*^9}, { | |
3.758181958730146*^9, 3.7581819659113607`*^9}, 3.758182001352351*^9, { | |
3.758182050853853*^9, 3.7581820724788723`*^9}, {3.758182342305779*^9, | |
3.7581823717226763`*^9}, {3.7581964309595013`*^9, | |
3.758196442407248*^9}},ExpressionUUID->"1035d23d-bf63-4079-9b91-\ | |
9d1a7bd3ef60"], | |
Cell[BoxData[ | |
TemplateBox[{ | |
"Inverse", "sing", | |
"\"Matrix \\!\\(\\*RowBox[{\\\"{\\\", RowBox[{RowBox[{\\\"{\\\", \ | |
RowBox[{\\\"3\\\", \\\",\\\", \\\"3\\\"}], \\\"}\\\"}], \\\",\\\", RowBox[{\\\ | |
\"{\\\", RowBox[{\\\"7\\\", \\\",\\\", \\\"7\\\"}], \\\"}\\\"}]}], \ | |
\\\"}\\\"}]\\) is singular.\"", 2, 20, 3, 30853638982489243964, "Local"}, | |
"MessageTemplate"]], "Message", "MSG", | |
CellChangeTimes->{{3.7581823513823643`*^9, 3.758182371763029*^9}, | |
3.7581964309946632`*^9}, | |
CellLabel-> | |
"During evaluation of \ | |
In[15]:=",ExpressionUUID->"bcf241d9-6e4c-43c8-addf-2cc6fec65747"], | |
Cell[BoxData[ | |
RowBox[{"Inverse", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"3", ",", "3"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"7", ",", "7"}], "}"}]}], "}"}], "]"}]], "Output", | |
CellChangeTimes->{{3.758181958740506*^9, 3.758181965927252*^9}, | |
3.7581820013677473`*^9, {3.7581820508808193`*^9, 3.7581820725019827`*^9}, { | |
3.7581823423305902`*^9, 3.7581823717725554`*^9}, 3.75819643100393*^9}, | |
CellLabel->"Out[20]=",ExpressionUUID->"61f2749c-3c0f-48cd-9818-e79c3282ef66"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[TextData[{ | |
"Non-invertible matrices ", | |
StyleBox["C", | |
FontSlant->"Italic"], | |
" and ", | |
StyleBox["D", | |
FontSlant->"Italic"], | |
" so that ", | |
StyleBox["C + D", | |
FontSlant->"Italic"], | |
" is invertible." | |
}], "Subsection", | |
CellChangeTimes->{{3.758157398682423*^9, 3.758157440521224*^9}, | |
3.8149558167613287`*^9},ExpressionUUID->"da78bad0-639f-465d-8111-\ | |
ba3feef8a14d"], | |
Cell[TextData[{ | |
"Given matrices ", | |
Cell[BoxData[ | |
FormBox["C", TraditionalForm]],ExpressionUUID-> | |
"cbe72ddc-1e8c-4950-b9b2-92d01e9fa29c"], | |
" and ", | |
Cell[BoxData[ | |
FormBox["D", TraditionalForm]],ExpressionUUID-> | |
"486c8e5a-d706-4c24-8d2b-ef2f1dea915a"], | |
", \n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"C", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"a", "b"}, | |
{"c", "d"} | |
}], "\[NoBreak]", ")"}]}], ",", | |
RowBox[{"D", "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"e", "f"}, | |
{"g", "h"} | |
}], "\[NoBreak]", ")"}]}]}], TraditionalForm]],ExpressionUUID-> | |
"37b4cb34-4d25-4431-bae6-4cb4180ef0e2"], | |
"\n\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"C", "+", "D"}], TraditionalForm]],ExpressionUUID-> | |
"e06f7c6c-b374-4573-bd31-ac5faaeb9d67"], | |
" can be computed as \n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"C", "+", "D"}], "=", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
RowBox[{"a", "+", "e"}], | |
RowBox[{"b", "+", "f"}]}, | |
{ | |
RowBox[{"c", "+", "g"}], | |
RowBox[{"d", "+", "h"}]} | |
}], "\[NoBreak]", ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"0f19eb7b-ed40-4e21-b203-6b19776c967d"], | |
"\n\nNow, we are looking for matrices ", | |
Cell[BoxData[ | |
FormBox["C", TraditionalForm]],ExpressionUUID-> | |
"be62a2ec-92de-4587-9a8d-1456e46bfe2c"], | |
" and ", | |
Cell[BoxData[ | |
FormBox["D", TraditionalForm]],ExpressionUUID-> | |
"c931ee51-7013-491e-b1b4-a0bccaae57c6"], | |
" whose determinants are each non-zero but the determinant of ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"C", "+", "D"}], TraditionalForm]],ExpressionUUID-> | |
"22d684cb-7ade-4578-bf6e-1be479e75281"], | |
" is 0. Expressing this in equations give us:\n\n", | |
Cell[BoxData[{ | |
FormBox[ | |
RowBox[{"ad", "=", "bc"}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{"eh", "=", "fg"}], TraditionalForm], "\[IndentingNewLine]", | |
FormBox[ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{"a", "+", "e"}], ")"}], | |
RowBox[{"(", | |
RowBox[{"d", "+", "h"}], ")"}]}], "\[NotEqual]", | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{"f", "+", "b"}], ")"}], | |
RowBox[{"(", | |
RowBox[{"g", "+", "c"}], ")"}]}]}], TraditionalForm]}],ExpressionUUID-> | |
"afd160e5-d502-41d3-93d9-a61aa940a3a1"], | |
"\n\nOne example of a combination of ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", | |
RowBox[{ | |
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", | |
"h"}], ")"}], TraditionalForm]],ExpressionUUID-> | |
"97c4af2d-145e-4530-882e-03b0b14312ac"], | |
" is:\n", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{ | |
RowBox[{"(", | |
RowBox[{ | |
"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", | |
"h"}], ")"}], "=", | |
RowBox[{"(", | |
RowBox[{ | |
"1", ",", "4", ",", "2", ",", "8", ",", "2", ",", "6", ",", "1", ",", | |
"3"}], ")"}]}], TraditionalForm]],ExpressionUUID-> | |
"6410ad7e-3618-40eb-b798-5739b0ac1590"] | |
}], "Text", | |
InitializationCell->True, | |
CellChangeTimes->{{3.7581824128763857`*^9, 3.7581826132364597`*^9}, { | |
3.758182696120742*^9, 3.7581827177016973`*^9}, {3.7581827898721046`*^9, | |
3.7581829114063063`*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"a3b6709d-5c51-431a-9bbd-b63a05f4de8e"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"mat4", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"1", ",", "4"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"2", ",", "8"}], "}"}]}], "}"}]}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"mat5", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"2", ",", "6"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", "3"}], "}"}]}], "}"}]}], | |
"\[IndentingNewLine]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Example matrices: A= \>\"", ",", | |
RowBox[{"mat4", "//", "MatrixForm"}], ",", "\"\< B= \>\"", ",", | |
RowBox[{"mat5", "//", "MatrixForm"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= \>\"", ",", | |
RowBox[{ | |
RowBox[{"Inverse", "[", "mat4", "]"}], "//", "MatrixForm"}], ",", | |
"\"\< \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= \>\"", ",", | |
RowBox[{ | |
RowBox[{"Inverse", "[", "mat5", "]"}], "//", "MatrixForm"}]}], "]"}], | |
"\[IndentingNewLine]"}], "\[IndentingNewLine]", | |
RowBox[{"mat6", ":=", | |
RowBox[{"mat4", "+", "mat5"}]}], "\[IndentingNewLine]", | |
RowBox[{"Inverse", "[", "mat6", "]"}]}], "Input", | |
CellChangeTimes->{{3.758182930488716*^9, 3.758182973514221*^9}}, | |
CellLabel->"In[21]:=",ExpressionUUID->"e941b480-8ca2-43b1-b02e-8c47ef709916"], | |
Cell[BoxData[ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Example matrices: A= \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"1", "4"}, | |
{"2", "8"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]], "\[InvisibleSpace]", "\<\" B= \"\>", | |
"\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"2", "6"}, | |
{"1", "3"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["Example matrices: A= ", | |
MatrixForm[{{1, 4}, {2, 8}}], " B= ", | |
MatrixForm[{{2, 6}, {1, 3}}]], | |
Editable->False], TraditionalForm]], "Print", | |
CellChangeTimes->{ | |
3.7581829743476963`*^9, {3.758196456336618*^9, 3.758196464141863*^9}}, | |
CellLabel-> | |
"During evaluation of \ | |
In[21]:=",ExpressionUUID->"31ff51da-1168-483e-904f-d83e8fe6405d"], | |
Cell[BoxData[ | |
TemplateBox[{ | |
"Inverse", "sing", | |
"\"Matrix \\!\\(\\*RowBox[{\\\"{\\\", RowBox[{RowBox[{\\\"{\\\", \ | |
RowBox[{\\\"1\\\", \\\",\\\", \\\"4\\\"}], \\\"}\\\"}], \\\",\\\", RowBox[{\\\ | |
\"{\\\", RowBox[{\\\"2\\\", \\\",\\\", \\\"8\\\"}], \\\"}\\\"}]}], \ | |
\\\"}\\\"}]\\) is singular.\"", 2, 24, 4, 30853638982489243964, "Local"}, | |
"MessageTemplate"]], "Message", "MSG", | |
CellChangeTimes->{3.7581829743723583`*^9, 3.758196456360231*^9}, | |
CellLabel-> | |
"During evaluation of \ | |
In[21]:=",ExpressionUUID->"f6f5b244-b8da-4a6c-8c5d-a1cae27ee403"], | |
Cell[BoxData[ | |
TemplateBox[{ | |
"Inverse", "sing", | |
"\"Matrix \\!\\(\\*RowBox[{\\\"{\\\", RowBox[{RowBox[{\\\"{\\\", \ | |
RowBox[{\\\"2\\\", \\\",\\\", \\\"6\\\"}], \\\"}\\\"}], \\\",\\\", RowBox[{\\\ | |
\"{\\\", RowBox[{\\\"1\\\", \\\",\\\", \\\"3\\\"}], \\\"}\\\"}]}], \ | |
\\\"}\\\"}]\\) is singular.\"", 2, 24, 5, 30853638982489243964, "Local"}, | |
"MessageTemplate"]], "Message", "MSG", | |
CellChangeTimes->{3.7581829743723583`*^9, 3.758196456381186*^9}, | |
CellLabel-> | |
"During evaluation of \ | |
In[21]:=",ExpressionUUID->"0c13626e-b993-4346-b7e1-6a784a8718f3"], | |
Cell[BoxData[ | |
InterpretationBox[ | |
RowBox[{"\<\"Inverted: \\!\\(\\*SuperscriptBox[\\(A\\), \\(-1\\)]\\)= \"\>", | |
"\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"Inverse", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"1", ",", "4"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"2", ",", "8"}], "}"}]}], "}"}], "]"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]], | |
"\[InvisibleSpace]", "\<\" \\!\\(\\*SuperscriptBox[\\(B\\), \\(-1\\)]\\)= \ | |
\"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"Inverse", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"2", ",", "6"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"1", ",", "3"}], "}"}]}], "}"}], "]"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["Inverted: \!\(\*SuperscriptBox[\(A\), \(-1\)]\)= ", | |
MatrixForm[ | |
Inverse[{{1, 4}, {2, 8}}]], " \!\(\*SuperscriptBox[\(B\), \(-1\)]\)= ", | |
MatrixForm[ | |
Inverse[{{2, 6}, {1, 3}}]]], | |
Editable->False]], "Print", | |
CellChangeTimes->{3.7581829743476963`*^9, 3.7581964563895063`*^9}, | |
CellLabel-> | |
"During evaluation of \ | |
In[21]:=",ExpressionUUID->"38d9e991-a03f-483f-924e-974e1902e2c6"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
FractionBox["11", "3"], | |
RowBox[{"-", | |
FractionBox["10", "3"]}]}, | |
{ | |
RowBox[{"-", "1"}], "1"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
TraditionalForm]], "Output", | |
CellChangeTimes->{ | |
3.75818297441092*^9, {3.7581964563966713`*^9, 3.758196469847878*^9}}, | |
CellLabel->"Out[26]=",ExpressionUUID->"82eff87a-f852-4add-b0ed-1b96d250f0e2"] | |
}, Open ]] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["encrypting messages and stuff", "Section", | |
CellChangeTimes->{{3.7581574454613657`*^9, 3.758157457933679*^9}, { | |
3.8149558192500753`*^9, | |
3.8149558329048147`*^9}},ExpressionUUID->"32c548ee-83b7-4fbf-9b37-\ | |
8368a0343e91"], | |
Cell[CellGroupData[{ | |
Cell[TextData[{ | |
"Numeric ", | |
StyleBox["key-matrix", | |
FontSlant->"Italic"], | |
" corresponding to the examples using the letter-to-number assignment \ | |
given." | |
}], "Subsection", | |
CellChangeTimes->{{3.7581574644391527`*^9, 3.75815757071943*^9}, { | |
3.758175812627846*^9, 3.7581758132242947`*^9}, {3.814955837800932*^9, | |
3.8149558418897963`*^9}},ExpressionUUID->"1b92766a-5b25-48b0-8579-\ | |
7518f4b80630"], | |
Cell[TextData[{ | |
"HILL \[RightArrow] ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"[", GridBox[{ | |
{"H", "I"}, | |
{"L", "L"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "]"}], TraditionalForm]], | |
CellChangeTimes->{{3.757666594167828*^9, 3.757666658223991*^9}, { | |
3.758156993471949*^9, 3.7581571175133343`*^9}}, | |
FontWeight->"Plain",ExpressionUUID-> | |
"4e1eb783-423a-4592-9624-a733721432ca"], | |
" \[RightArrow] ", | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"[", GridBox[{ | |
{"7", "8"}, | |
{"11", "11"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "]"}], TraditionalForm]], | |
CellChangeTimes->{{3.7576673706052027`*^9, 3.757667421681965*^9}}, | |
FontWeight->"Plain",ExpressionUUID->"00813d87-423f-4a73-8004-d8417d95fb12"] | |
}], "Text", | |
CellChangeTimes->{{3.758158159060265*^9, 3.758158311133768*^9}, | |
3.758158348902403*^9}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"d9ffc07e-5c4a-42f6-ac35-81f8ff9a9ba8"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["First convert text to vector", "Subsection", | |
CellChangeTimes->{{3.758157575705063*^9, 3.758157577409574*^9}, { | |
3.758157624644823*^9, 3.758157840951379*^9}, {3.814955844939604*^9, | |
3.814955906381514*^9}},ExpressionUUID->"d3663094-9d68-4220-9b49-\ | |
f6e0775d1752"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"ClearAll", ";"}], "\[IndentingNewLine]", | |
RowBox[{"letnum", " ", ":=", " ", | |
RowBox[{"Association", "[", | |
RowBox[{ | |
RowBox[{"A", "\[Rule]", "0"}], ",", | |
RowBox[{"B", "\[Rule]", "1"}], ",", | |
RowBox[{"C", "\[Rule]", "2"}], ",", | |
RowBox[{"D", "\[Rule]", "3"}], ",", | |
RowBox[{"E", "\[Rule]", "4"}], ",", | |
RowBox[{"F", "\[Rule]", "5"}], ",", | |
RowBox[{"G", "\[Rule]", "6"}], ",", | |
RowBox[{"H", "\[Rule]", "7"}], ",", | |
RowBox[{"I", "\[Rule]", "8"}], ",", | |
RowBox[{"J", "\[Rule]", "9"}], ",", | |
RowBox[{"K", "\[Rule]", "10"}], ",", | |
RowBox[{"L", "\[Rule]", "11"}], ",", | |
RowBox[{"M", "\[Rule]", "12"}], ",", | |
RowBox[{"N", "\[Rule]", "13"}], ",", | |
RowBox[{"O", "\[Rule]", "14"}], ",", | |
RowBox[{"P", "\[Rule]", "15"}], ",", | |
RowBox[{"Q", "\[Rule]", "16"}], ",", | |
RowBox[{"R", "\[Rule]", "17"}], ",", | |
RowBox[{"S", "\[Rule]", "18"}], ",", | |
RowBox[{"T", "\[Rule]", "19"}], ",", | |
RowBox[{"U", "\[Rule]", "20"}], ",", | |
RowBox[{"V", "\[Rule]", "21"}], ",", | |
RowBox[{"W", "\[Rule]", "22"}], ",", | |
RowBox[{"X", "\[Rule]", "23"}], ",", | |
RowBox[{"Y", "\[Rule]", "24"}], ",", | |
RowBox[{"Z", "\[Rule]", "25"}]}], "]"}]}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<TE = \>\"", ",", | |
RowBox[{"MatrixForm", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "T", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<ST = \>\"", ",", | |
RowBox[{"MatrixForm", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "T", "]"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<ME = \>\"", ",", | |
RowBox[{"MatrixForm", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "M", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<SS = \>\"", ",", | |
RowBox[{"MatrixForm", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<AG = \>\"", ",", | |
RowBox[{"MatrixForm", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "A", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}], "]"}]}], | |
"]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<EX = \>\"", ",", | |
RowBox[{"MatrixForm", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "X", "]"}], "}"}]}], "}"}], "]"}]}], | |
"]"}]}], "Input", | |
CellChangeTimes->{{3.758158369141244*^9, 3.758158535291754*^9}, { | |
3.758158695001642*^9, 3.758158829895775*^9}, 3.758158878216824*^9, { | |
3.758159017250574*^9, 3.7581590357168617`*^9}, {3.7581735205997057`*^9, | |
3.758173521314938*^9}}, | |
CellLabel->"In[27]:=",ExpressionUUID->"0779fd9a-2497-4102-86e0-87e7197a6c01"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"TE = \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"19"}, | |
{"4"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["TE = ", | |
MatrixForm[{{19}, {4}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"ST = \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"18"}, | |
{"19"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["ST = ", | |
MatrixForm[{{18}, {19}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"ME = \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"12"}, | |
{"4"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["ME = ", | |
MatrixForm[{{12}, {4}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"SS = \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"18"}, | |
{"18"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["SS = ", | |
MatrixForm[{{18}, {18}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"AG = \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"0"}, | |
{"6"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["AG = ", | |
MatrixForm[{{0}, {6}}]], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"EX = \"\>", "\[InvisibleSpace]", | |
TagBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"4"}, | |
{"23"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
Function[BoxForm`e$, | |
MatrixForm[BoxForm`e$]]]}], | |
SequenceForm["EX = ", | |
MatrixForm[{{4}, {23}}]], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{ | |
3.758173524207973*^9, {3.758196476068967*^9, | |
3.758196482869028*^9}},ExpressionUUID->"9b8481d6-e90f-438b-9454-\ | |
04ace92b377e"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["Encrypting", "Subsection", | |
CellChangeTimes->{{3.758157846220573*^9, 3.758157887886464*^9}, { | |
3.81495586074477*^9, | |
3.814955911029015*^9}},ExpressionUUID->"734064bb-f963-437d-bbcc-\ | |
367e0cb96e11"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"key", ":=", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"7", ",", "8"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"11", ",", "11"}], "}"}]}], "}"}]}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<TE encrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"key", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "T", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<ST encrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"key", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "T", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<ME encrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"key", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "M", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<SS encrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"key", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<AG encrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"key", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "A", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<EX encrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"key", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "X", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}]}], "Input", | |
CellChangeTimes->{{3.758159636748233*^9, 3.758159649968012*^9}, { | |
3.7581596961173973`*^9, 3.758159796678773*^9}, {3.7581598449845057`*^9, | |
3.7581599231582537`*^9}, {3.7581600048501463`*^9, 3.758160017247478*^9}, { | |
3.7581600551594954`*^9, 3.7581601118287153`*^9}, {3.758160143405232*^9, | |
3.758160281691649*^9}, {3.7581735377508593`*^9, 3.7581735590413513`*^9}}, | |
CellLabel->"In[35]:=",ExpressionUUID->"9dbb62d8-4b69-4d59-9edb-87035749d888"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"TE encrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"9"}, | |
{"19"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["TE encrypted: ", {{9}, {19}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"ST encrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"18"}, | |
{"17"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["ST encrypted: ", {{18}, {17}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"ME encrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"12"}, | |
{"20"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["ME encrypted: ", {{12}, {20}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"SS encrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"10"}, | |
{"6"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["SS encrypted: ", {{10}, {6}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"AG encrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"22"}, | |
{"14"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["AG encrypted: ", {{22}, {14}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"EX encrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"4"}, | |
{"11"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["EX encrypted: ", {{4}, {11}}], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{ | |
3.758162128379051*^9, 3.758171396087229*^9, 3.758172004339747*^9, | |
3.7581735655663757`*^9, {3.75819648650832*^9, | |
3.7581964934296227`*^9}},ExpressionUUID->"d66fbfb5-620a-4b87-b8dc-\ | |
82de9c58d581"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["Encrypted string for \[OpenCurlyQuote]TESTMESSAGE\[CloseCurlyQuote]", \ | |
"Subsection", | |
CellChangeTimes->{{3.758157889483095*^9, 3.758157905657097*^9}, { | |
3.814955913871792*^9, | |
3.8149559165490923`*^9}},ExpressionUUID->"90ecf76a-554c-430a-9632-\ | |
5b8becf93ab6"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"numlet", ":=", | |
RowBox[{"PositionIndex", "[", "letnum", "]"}]}], "\[IndentingNewLine]", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"numlet", "[", "9", "]"}], ",", | |
RowBox[{"numlet", "[", "19", "]"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"numlet", "[", "18", "]"}], ",", | |
RowBox[{"numlet", "[", "17", "]"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"numlet", "[", "12", "]"}], ",", | |
RowBox[{"numlet", "[", "20", "]"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"numlet", "[", "10", "]"}], ",", | |
RowBox[{"numlet", "[", "6", "]"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"numlet", "[", "22", "]"}], ",", | |
RowBox[{"numlet", "[", "14", "]"}]}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"numlet", "[", "4", "]"}], ",", | |
RowBox[{"numlet", "[", "11", "]"}]}], "}"}]}], "}"}]}], "Input", | |
CellChangeTimes->{{3.758160737450714*^9, 3.758160840453273*^9}, { | |
3.758160879468892*^9, 3.758160978735833*^9}, {3.758161053967224*^9, | |
3.758161072559272*^9}}, | |
CellLabel->"In[42]:=",ExpressionUUID->"c5085808-cff2-49d9-b7a1-4162212ac570"], | |
Cell[BoxData[ | |
FormBox[ | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{ | |
RowBox[{"{", "J", "}"}], | |
RowBox[{"{", "T", "}"}]}, | |
{ | |
RowBox[{"{", "S", "}"}], | |
RowBox[{"{", "R", "}"}]}, | |
{ | |
RowBox[{"{", "M", "}"}], | |
RowBox[{"{", "U", "}"}]}, | |
{ | |
RowBox[{"{", "K", "}"}], | |
RowBox[{"{", "G", "}"}]}, | |
{ | |
RowBox[{"{", "W", "}"}], | |
RowBox[{"{", "O", "}"}]}, | |
{ | |
RowBox[{"{", "\[ExponentialE]", "}"}], | |
RowBox[{"{", "L", "}"}]} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, | |
"RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], | |
TraditionalForm]], "Output", | |
CellChangeTimes->{ | |
3.758160902303858*^9, {3.758160939514399*^9, 3.758160986354648*^9}, { | |
3.75816107353613*^9, 3.758161079664603*^9}, 3.7581621394254847`*^9, | |
3.7581713983998413`*^9, 3.758173579846677*^9, {3.758196495665839*^9, | |
3.758196499424715*^9}}, | |
CellLabel->"Out[43]=",ExpressionUUID->"d3994a33-5cf6-4618-93e5-a5eeb7c59084"] | |
}, Open ]], | |
Cell["The encrypted string for \[OpenCurlyQuote]TESTMESSAGE\[CloseCurlyQuote] \ | |
is \[OpenCurlyDoubleQuote]JTSRMUKGWOEL\[CloseCurlyDoubleQuote]", "Text", | |
CellChangeTimes->{{3.758160995143154*^9, 3.758161011785335*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"7341ee04-192c-4418-b4dc-51e8ff4eecea"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["Decrypting", "Subsection", | |
CellChangeTimes->{{3.758157916664495*^9, 3.7581579599441977`*^9}, { | |
3.7581615334748373`*^9, 3.758161533925446*^9}, {3.814955921337359*^9, | |
3.8149559440853853`*^9}},ExpressionUUID->"587e37a0-eaaa-4808-a18b-\ | |
cb3c05e58542"], | |
Cell[CellGroupData[{ | |
Cell["TESTMESSAGE", "Subsubsection", | |
CellChangeTimes->{{3.75817442867734*^9, 3.758174441866015*^9}, { | |
3.814955953382641*^9, | |
3.814955958464332*^9}},ExpressionUUID->"f4795f2f-6bde-4d73-af74-\ | |
d2bd1fa209ac"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{ | |
RowBox[{"SetAttributes", "[", | |
RowBox[{"ForceMod", ",", "Listable"}], "]"}], ";"}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{ | |
RowBox[{ | |
RowBox[{"ForceMod", "[", | |
RowBox[{ | |
RowBox[{"Rational", "[", | |
RowBox[{"a_", ",", "b_"}], "]"}], ",", "m_"}], "]"}], ":=", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"a", "*", | |
RowBox[{"ModularInverse", "[", | |
RowBox[{"b", ",", "m"}], "]"}]}], ",", "m"}], "]"}]}], ";"}], | |
RowBox[{"(*", | |
RowBox[{ | |
"build", " ", "a", " ", "function", " ", "that", " ", "returns", " ", | |
"modular", " ", "arithmetic", " ", "even", " ", "with", " ", "rational", | |
" ", "input"}], "*)"}], "\n"}], "\n", | |
RowBox[{"invkey", ":=", | |
RowBox[{"Inverse", "[", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"7", ",", "8"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"11", ",", "11"}], "}"}]}], "}"}], | |
"]"}]}], "\[IndentingNewLine]", | |
RowBox[{ | |
RowBox[{"decryptkey", ":=", | |
RowBox[{"ForceMod", "[", | |
RowBox[{"invkey", ",", "26"}], "]"}]}], | |
"\[IndentingNewLine]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<JT decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "J", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "T", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<SR decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "S", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "R", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<MU decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "M", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "U", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<KG decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "K", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<WO decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "W", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "O", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<EL decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "L", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}]}], "Input", | |
CellChangeTimes->CompressedData[" | |
1:eJxTTMoPSmViYGCQAGIQzf1O6II8wxvHsktFV0D0orblD0D0loruryA6ZSE3 | |
iwKQnvMxkANE69msW68Cot1tN4LoGTzLzoDoV5Fzz4Lo1RtfXwTRrcYm90D0 | |
/wPRL0B01f8VYLrhHvdnEJ1WowGmhRSYWFSB9NKbeoIg+nWYmgSIlohRkQPR | |
vvrW6iB6U/kCbRCt46lqB6LnzXgJpl14bJ1BtFeyoQuI5pL/HQ+ihXszUkG0 | |
ykflHBCtwacHpltjIktB9JNNlmUgusSvqwpE1z2Rng6iFwtOmgOil4X0LgbR | |
vC6tm0C0ksRmMF1UtusaiL6i6X0XRDNfKPwAohf90uJUA5njrv/CAEhXstR9 | |
BtEBJUb/QDQHSyqYjnCJ5jcE0iaGOkIgGgBUd5cu | |
"], | |
CellLabel-> | |
"In[181]:=",ExpressionUUID->"8dcb4107-b9de-4269-85ad-c14400aff8fb"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"JT decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"19"}, | |
{"4"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["JT decrypted: ", {{19}, {4}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"SR decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"18"}, | |
{"19"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["SR decrypted: ", {{18}, {19}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"MU decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"12"}, | |
{"4"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["MU decrypted: ", {{12}, {4}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"KG decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"18"}, | |
{"18"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["KG decrypted: ", {{18}, {18}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"WO decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"0"}, | |
{"6"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["WO decrypted: ", {{0}, {6}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"EL decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"4"}, | |
{"23"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["EL decrypted: ", {{4}, {23}}], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{{3.7581965525618753`*^9, 3.758196625604965*^9}, | |
3.758196672123301*^9, {3.758196723741304*^9, 3.758196731530191*^9}, { | |
3.7581968706255836`*^9, | |
3.758196887833171*^9}},ExpressionUUID->"c7488d0a-3048-4bd2-acfd-\ | |
e36ae6660ab2"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Translated back to letters: \>\"", ",", " ", | |
RowBox[{"numlet", "[", "19", "]"}], ",", " ", | |
RowBox[{"numlet", "[", "4", "]"}], ",", | |
RowBox[{"numlet", "[", "18", "]"}], ",", | |
RowBox[{"numlet", "[", "19", "]"}], ",", | |
RowBox[{"numlet", "[", "12", "]"}], ",", | |
RowBox[{"numlet", "[", "4", "]"}], ",", | |
RowBox[{"numlet", "[", "18", "]"}], ",", | |
RowBox[{"numlet", "[", "18", "]"}], ",", | |
RowBox[{"numlet", "[", "0", "]"}], ",", | |
RowBox[{"numlet", "[", "6", "]"}], ",", | |
RowBox[{"numlet", "[", "4", "]"}], ",", | |
RowBox[{"numlet", "[", "23", "]"}]}], "]"}]], "Input", | |
CellChangeTimes->{{3.758174287005088*^9, 3.75817439853351*^9}}, | |
CellLabel->"In[54]:=",ExpressionUUID->"a0cbfb75-6bb0-4ddf-a5ad-794369ed6e86"], | |
Cell[BoxData[ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Translated back to letters: \"\>", "\[InvisibleSpace]", | |
RowBox[{"{", "T", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "S", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "T", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "M", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "S", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "S", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "G", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "X", "}"}]}], | |
SequenceForm[ | |
"Translated back to letters: ", {$CellContext`T}, { | |
E}, {$CellContext`S}, {$CellContext`T}, {$CellContext`M}, { | |
E}, {$CellContext`S}, {$CellContext`S}, {$CellContext`A}, \ | |
{$CellContext`G}, {E}, {$CellContext`X}], | |
Editable->False], TraditionalForm]], "Print", | |
CellChangeTimes->{{3.7581743543006783`*^9, 3.75817439904671*^9}, { | |
3.7581965214941*^9, 3.7581965250021133`*^9}}, | |
CellLabel-> | |
"During evaluation of \ | |
In[54]:=",ExpressionUUID->"10ecaefd-b9e4-4d19-a24d-503d386834d4"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["SOME OTHER EXAMPLE \[OpenCurlyDoubleQuote]QWJJOPEXWGBUFADHRNNZJ\ | |
\[CloseCurlyDoubleQuote]", "Subsubsection", | |
CellChangeTimes->{{3.758174416227324*^9, 3.7581744199164953`*^9}, { | |
3.758174550432547*^9, 3.7581745729764357`*^9}, {3.814955965199198*^9, | |
3.8149559705922813`*^9}},ExpressionUUID->"73bd7840-8a81-43d4-b6c0-\ | |
0305404e2fea"], | |
Cell[CellGroupData[{ | |
Cell[BoxData[{ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<QW decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "Q", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "W", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<JJ decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "J", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "J", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<OP decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "O", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "P", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<EX decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "E", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "X", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<WG decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "W", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "G", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<BU decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "B", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "U", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<PF decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "P", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "F", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<AD decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "A", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "D", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<HR decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "H", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "R", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<NN decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "N", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "N", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}], "\[IndentingNewLine]", | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<ZJ decrypted: \>\"", ",", | |
RowBox[{"Mod", "[", | |
RowBox[{ | |
RowBox[{"decryptkey", ".", | |
RowBox[{"{", | |
RowBox[{ | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "Z", "]"}], "}"}], ",", | |
RowBox[{"{", | |
RowBox[{"letnum", "[", "J", "]"}], "}"}]}], "}"}]}], ",", "26"}], | |
"]"}]}], "]"}]}], "Input", | |
CellChangeTimes->{{3.7581745783165827`*^9, 3.758174709208406*^9}}, | |
CellLabel-> | |
"In[191]:=",ExpressionUUID->"3446689a-f4dc-48cf-8f92-c83c68355a84"], | |
Cell[BoxData[{ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"QW decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"0"}, | |
{"2"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["QW decrypted: ", {{0}, {2}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"JJ decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"7"}, | |
{"8"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["JJ decrypted: ", {{7}, {8}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"OP decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"4"}, | |
{"21"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["OP decrypted: ", {{4}, {21}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"EX decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"8"}, | |
{"13"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["EX decrypted: ", {{8}, {13}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"WG decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"6"}, | |
{"4"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["WG decrypted: ", {{6}, {4}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"BU decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"23"}, | |
{"19"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["BU decrypted: ", {{23}, {19}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"PF decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"17"}, | |
{"0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["PF decrypted: ", {{17}, {0}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"AD decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"14"}, | |
{"17"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["AD decrypted: ", {{14}, {17}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"HR decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"3"}, | |
{"8"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["HR decrypted: ", {{3}, {8}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"NN decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"13"}, | |
{"0"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["NN decrypted: ", {{13}, {0}}], | |
Editable->False], TraditionalForm], "\n", | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"ZJ decrypted: \"\>", "\[InvisibleSpace]", | |
RowBox[{"(", "\[NoBreak]", GridBox[{ | |
{"17"}, | |
{"24"} | |
}, | |
GridBoxAlignment->{ | |
"Columns" -> {{Center}}, "ColumnsIndexed" -> {}, | |
"Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, | |
GridBoxSpacings->{"Columns" -> { | |
Offset[0.27999999999999997`], { | |
Offset[0.7]}, | |
Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { | |
Offset[0.2], { | |
Offset[0.4]}, | |
Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}]}], | |
SequenceForm["ZJ decrypted: ", {{17}, {24}}], | |
Editable->False], TraditionalForm]}], "Print", | |
GeneratedCell->False, | |
CellAutoOverwrite->False, | |
CellChangeTimes->{{3.75817470971313*^9, 3.758174717984292*^9}, { | |
3.758196892841379*^9, | |
3.75819689915196*^9}},ExpressionUUID->"603146d4-f5b7-4664-92c8-\ | |
ca16e7debe14"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[BoxData[ | |
RowBox[{"Print", "[", | |
RowBox[{"\"\<Translated back to letters: \>\"", ",", " ", | |
RowBox[{"numlet", "[", "0", "]"}], ",", " ", | |
RowBox[{"numlet", "[", "2", "]"}], ",", | |
RowBox[{"numlet", "[", "7", "]"}], ",", | |
RowBox[{"numlet", "[", "8", "]"}], ",", | |
RowBox[{"numlet", "[", "4", "]"}], ",", | |
RowBox[{"numlet", "[", "21", "]"}], ",", | |
RowBox[{"numlet", "[", "8", "]"}], ",", | |
RowBox[{"numlet", "[", "13", "]"}], ",", | |
RowBox[{"numlet", "[", "6", "]"}], ",", | |
RowBox[{"numlet", "[", "4", "]"}], ",", | |
RowBox[{"numlet", "[", "23", "]"}], ",", | |
RowBox[{"numlet", "[", "19", "]"}], ",", | |
RowBox[{"numlet", "[", "17", "]"}], ",", | |
RowBox[{"numlet", "[", "0", "]"}], ",", | |
RowBox[{"numlet", "[", "14", "]"}], ",", | |
RowBox[{"numlet", "[", "17", "]"}], ",", | |
RowBox[{"numlet", "[", "3", "]"}], ",", | |
RowBox[{"numlet", "[", "8", "]"}], ",", | |
RowBox[{"numlet", "[", "13", "]"}], ",", | |
RowBox[{"numlet", "[", "0", "]"}], ",", | |
RowBox[{"numlet", "[", "17", "]"}], ",", | |
RowBox[{"numlet", "[", "24", "]"}]}], "]"}]], "Input", | |
CellChangeTimes->{{3.758174761822315*^9, 3.758174815253574*^9}}, | |
CellLabel-> | |
"In[202]:=",ExpressionUUID->"6fc74282-7ce4-4155-856e-103a95947069"], | |
Cell[BoxData[ | |
FormBox[ | |
InterpretationBox[ | |
RowBox[{"\<\"Translated back to letters: \"\>", "\[InvisibleSpace]", | |
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "C", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "H", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ImaginaryI]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "V", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ImaginaryI]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "N", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "G", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ExponentialE]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "X", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "T", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "R", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "O", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "R", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "D", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "\[ImaginaryI]", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "N", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "A", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "R", "}"}], "\[InvisibleSpace]", | |
RowBox[{"{", "Y", "}"}]}], | |
SequenceForm[ | |
"Translated back to letters: ", {$CellContext`A}, {C}, {$CellContext`H}, { | |
Complex[0, 1]}, {E}, {$CellContext`V}, { | |
Complex[0, 1]}, {N}, {$CellContext`G}, { | |
E}, {$CellContext`X}, {$CellContext`T}, {$CellContext`R}, \ | |
{$CellContext`A}, {O}, {$CellContext`R}, {D}, { | |
Complex[0, 1]}, { | |
N}, {$CellContext`A}, {$CellContext`R}, {$CellContext`Y}], | |
Editable->False], TraditionalForm]], "Print", | |
CellChangeTimes->{ | |
3.758174815668688*^9, {3.7581969014047213`*^9, 3.758196905171316*^9}}, | |
CellLabel-> | |
"During evaluation of \ | |
In[202]:=",ExpressionUUID->"79f8e0b0-eacc-4926-b6fb-f946f532e1be"] | |
}, Open ]], | |
Cell["The message reads: \[OpenCurlyDoubleQuote]ACHIEVINGEXTRAORDINARY\ | |
\[CloseCurlyDoubleQuote].", "Text", | |
CellChangeTimes->{{3.7581748899215937`*^9, 3.758174907575474*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"f056d529-12bf-4a68-adbe-844278dded25"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell["Analysis", "Subsection", | |
CellChangeTimes->{{3.758157964315374*^9, 3.7581580033996353`*^9}, { | |
3.8149559874294167`*^9, | |
3.814955992625304*^9}},ExpressionUUID->"ba0ad053-bf1b-40fd-a413-\ | |
5452fdfaabd9"], | |
Cell["\<\ | |
This technique is effective because of the intermediary step to convert a \ | |
vector into a different vector using the key matrix. For example, if we look \ | |
at the third and fourth letter of the encrypted message in part (e), (=\ | |
\[OpenCurlyDoubleQuote]JJ\[CloseCurlyDoubleQuote]), we see that it is the \ | |
same. In a standard substitution cipher, this implies that the third and \ | |
fourth letter of the message is also the same, since substitution requires a \ | |
one-to-one match of the original message and the encrypted message. However, \ | |
here we see that \[OpenCurlyDoubleQuote]JJ\[CloseCurlyDoubleQuote] ultimately \ | |
translates to \[OpenCurlyDoubleQuote]HI\[CloseCurlyDoubleQuote] of the \ | |
original message, which are not two same letters. This is achieved by using \ | |
the key matrix and thus making the message more secure. One way to make the \ | |
message even more secure is by going through several layers, not just one, of \ | |
matrix multiplications as well as changing the key matrix every day.\ | |
\>", "Text", | |
CellChangeTimes->{{3.758174914932179*^9, 3.758174916948182*^9}, { | |
3.758175036503528*^9, 3.7581752479370737`*^9}, {3.758175843584154*^9, | |
3.758175859098709*^9}}, | |
FontFamily->"Times New Roman", | |
FontWeight->"Regular",ExpressionUUID->"8b0a7d15-846c-475e-a26b-532be7fe1637"] | |
}, Open ]] | |
}, Open ]] | |
}, | |
WindowSize->{839, 930}, | |
WindowMargins->{{Automatic, 0}, {Automatic, 0}}, | |
PrintingCopies->1, | |
PrintingPageRange->{1, Automatic}, | |
FrontEndVersion->"12.1 for Mac OS X x86 (64-bit) (March 18, 2020)", | |
StyleDefinitions->"Default.nb", | |
ExpressionUUID->"4093fcef-4b20-48cf-a72a-c428987a3a4c" | |
] | |
(* End of Notebook Content *) | |
(* Internal cache information *) | |
(*CellTagsOutline | |
CellTagsIndex->{} | |
*) | |
(*CellTagsIndex | |
CellTagsIndex->{} | |
*) | |
(*NotebookFileOutline | |
Notebook[{ | |
Cell[CellGroupData[{ | |
Cell[580, 22, 311, 5, 67, "Section",ExpressionUUID->"fd8544d6-1909-4b25-9659-cd19eeb208bb"], | |
Cell[CellGroupData[{ | |
Cell[916, 31, 225, 4, 54, "Subsection",ExpressionUUID->"cd0aff72-5c8a-44d3-8cb3-dbab95b01f94"], | |
Cell[1144, 37, 6935, 207, 545, "Input",ExpressionUUID->"b0c69a89-e41f-4462-b682-141ee72fb0a9"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[8116, 249, 743, 18, 108, "Subsection",ExpressionUUID->"092998ee-98fb-457e-a1ee-f1bc6fc235fd"], | |
Cell[8862, 269, 1429, 41, 62, "Input",ExpressionUUID->"98030549-e517-43ea-bbbc-a4b730310aa9"], | |
Cell[10294, 312, 1585, 35, 159, "Text",ExpressionUUID->"d94a9d92-4dca-41bc-9b3e-6f7447a89e11"], | |
Cell[CellGroupData[{ | |
Cell[11904, 351, 1154, 30, 52, "Input",ExpressionUUID->"e9354c81-f591-48aa-928d-5ca4f694cdf3"], | |
Cell[13061, 383, 1918, 52, 108, "Print",ExpressionUUID->"79a5324a-ce77-4469-a1f7-92ab6b031125"] | |
}, Open ]], | |
Cell[14994, 438, 1299, 38, 75, "Text",ExpressionUUID->"1740787f-7fc5-4328-af77-f1f5d801f02c"], | |
Cell[CellGroupData[{ | |
Cell[16318, 480, 1149, 31, 52, "Input",ExpressionUUID->"ecc091c2-b451-4218-9c79-ed695362eeee"], | |
Cell[17470, 513, 1963, 54, 108, "Print",ExpressionUUID->"2a66624f-9704-47c9-877f-c88741f24d3b"] | |
}, Open ]], | |
Cell[19448, 570, 538, 15, 33, "Text",ExpressionUUID->"6514a758-edbc-4168-8464-8f9a05022bf1"], | |
Cell[19989, 587, 903, 15, 159, "Text",ExpressionUUID->"f4deffad-1d70-4ec4-889f-f096f10022d9"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[20929, 607, 336, 5, 54, "Subsection",ExpressionUUID->"7f9ca359-e542-4596-988f-cb8f1fdd5131"], | |
Cell[21268, 614, 4386, 122, 459, "Text",ExpressionUUID->"b9b41390-d3bd-4c8d-be75-adf215da90d4"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[25691, 741, 294, 4, 54, "Subsection",ExpressionUUID->"dd11fafb-c20d-4785-88fc-bc0af54c783b"], | |
Cell[25988, 747, 3940, 108, 401, "Text",ExpressionUUID->"88dca3f2-6fa1-494b-9a71-3a8bd544e4c8"], | |
Cell[CellGroupData[{ | |
Cell[29953, 859, 245, 5, 45, "Subsubsection",ExpressionUUID->"f7afa4cc-bb1e-4a21-8e8f-2dc3754a20a0"], | |
Cell[30201, 866, 375, 7, 54, "Text",ExpressionUUID->"45533c61-90b1-4077-93e6-5399f908f90f"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[30613, 878, 249, 5, 45, "Subsubsection",ExpressionUUID->"56efd40e-170a-42f7-9958-c969378d750b"], | |
Cell[30865, 885, 593, 12, 88, "Text",ExpressionUUID->"611b804c-6957-4108-bc48-14a182c8fe0f"] | |
}, Open ]] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[31519, 904, 250, 5, 67, "Section",ExpressionUUID->"f66fbda0-3f3f-4cea-9521-8bbbfd3e8f05"], | |
Cell[31772, 911, 45587, 774, 921, "Text",ExpressionUUID->"8d41fa73-04f5-4be7-958c-8b0b77141612"], | |
Cell[CellGroupData[{ | |
Cell[77384, 1689, 2134, 41, 52, "Input",ExpressionUUID->"d923b046-180f-4a75-87cb-672596142f09"], | |
Cell[79521, 1732, 1130, 23, 30, "Output",ExpressionUUID->"b8a2e3d4-2422-4be6-b992-7e8314e45a84"] | |
}, Open ]], | |
Cell[80666, 1758, 1328, 27, 178, "Text",ExpressionUUID->"3bd695d1-2d4d-43e5-9ab9-639b0e34fb0d"], | |
Cell[81997, 1787, 937, 15, 138, "Text",ExpressionUUID->"90055568-58de-44d4-a052-50353a9eae39"], | |
Cell[82937, 1804, 411, 7, 54, "Text",ExpressionUUID->"fbe10508-2ddd-46d7-9f90-c22c5e5d0d08"], | |
Cell[CellGroupData[{ | |
Cell[83373, 1815, 226, 4, 54, "Subsection",ExpressionUUID->"384aeb62-6b40-42c8-86cf-cc4bc1705756"], | |
Cell[83602, 1821, 1937, 51, 359, "Text",ExpressionUUID->"60aeeb08-a4e1-4f74-bd96-8d198853ebe8"], | |
Cell[CellGroupData[{ | |
Cell[85564, 1876, 1398, 35, 73, "Input",ExpressionUUID->"0fc5ef7c-8844-4bfe-8abd-1d0840dbca8f"], | |
Cell[86965, 1913, 758, 17, 30, "Output",ExpressionUUID->"1e8116f6-d6e8-4d97-8712-f761675b2ca6"] | |
}, Open ]], | |
Cell[87738, 1933, 879, 14, 96, "Text",ExpressionUUID->"6ecaa955-f7ae-4481-8667-3782de86e210"], | |
Cell[CellGroupData[{ | |
Cell[88642, 1951, 1180, 29, 73, "Input",ExpressionUUID->"bd3f8b2d-88b8-4e53-9dfa-e32ae8593dd1"], | |
Cell[89825, 1982, 880, 19, 30, "Output",ExpressionUUID->"f2513d0f-cf7d-47c1-918a-421b6e884b24"] | |
}, Open ]], | |
Cell[90720, 2004, 928, 14, 138, "Text",ExpressionUUID->"fcb20ae1-04bb-4f8c-9a53-3bab48366392"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[91697, 2024, 254, 5, 67, "Section",ExpressionUUID->"5a33a389-0bfc-4cdf-9d7f-de902dd1f317"], | |
Cell[CellGroupData[{ | |
Cell[91976, 2033, 459, 18, 54, "Subsection",ExpressionUUID->"a565f71f-f745-45bf-b5e1-7727f5980758"], | |
Cell[92438, 2053, 1693, 39, 116, "Text",ExpressionUUID->"fb6b4aad-aa7e-415a-86d3-e4c195272052", | |
InitializationCell->True], | |
Cell[CellGroupData[{ | |
Cell[94156, 2096, 1102, 29, 94, "Input",ExpressionUUID->"8a5939e6-c011-4f1a-b8d6-97675e695e8c"], | |
Cell[95261, 2127, 1001, 25, 51, "Output",ExpressionUUID->"989a943f-be74-42b4-b7d0-4e473d55560f"] | |
}, Open ]], | |
Cell[96277, 2155, 766, 20, 98, "Text",ExpressionUUID->"464546e2-85f2-4053-b608-6ead8e29f722"], | |
Cell[CellGroupData[{ | |
Cell[97068, 2179, 1042, 35, 30, "Input",ExpressionUUID->"4b8b1cdd-f2f5-4905-9bc0-a101e47c34d1"], | |
Cell[98113, 2216, 253, 3, 34, "Output",ExpressionUUID->"b11b9e95-9412-4083-a7d2-9019213cbdd9"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[98415, 2225, 398, 13, 54, "Subsection",ExpressionUUID->"6a9f05ef-76a9-4b18-a6c9-d42d256d9443"], | |
Cell[98816, 2240, 3792, 119, 509, "Text",ExpressionUUID->"6e0be7ee-507b-4d64-9de6-23addf252f4f"], | |
Cell[CellGroupData[{ | |
Cell[102633, 2363, 838, 22, 73, "Input",ExpressionUUID->"291c551e-c878-4032-89e3-e12237091a67"], | |
Cell[103474, 2387, 1908, 54, 72, "Print",ExpressionUUID->"2a78dc51-7367-4592-b06a-7d25eac8e32b"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[105419, 2446, 676, 17, 30, "Input",ExpressionUUID->"2d1f6fcf-3c02-494a-8674-6077df84a19f"], | |
Cell[106098, 2465, 408, 11, 54, "Output",ExpressionUUID->"946788f3-e97e-4644-a025-256fe6ef9b5f"] | |
}, Open ]], | |
Cell[106521, 2479, 244, 3, 33, "Text",ExpressionUUID->"b36cc10e-a6e6-43d4-86eb-eba817fc5e0e"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[106802, 2487, 427, 15, 54, "Subsection",ExpressionUUID->"dc393c65-d07e-421a-a8b5-5d5ea25a5cfa"], | |
Cell[107232, 2504, 3116, 98, 354, "Text",ExpressionUUID->"3902d859-2b2a-4ae7-97f2-7b3e8ef0bc2d"], | |
Cell[CellGroupData[{ | |
Cell[110373, 2606, 1455, 36, 203, "Input",ExpressionUUID->"e190552c-41e9-4337-9175-4fc36dab5f9d"], | |
Cell[111831, 2644, 3980, 106, 82, "Print",ExpressionUUID->"1035d23d-bf63-4079-9b91-9d1a7bd3ef60"], | |
Cell[115814, 2752, 584, 12, 24, "Message",ExpressionUUID->"bcf241d9-6e4c-43c8-addf-2cc6fec65747"], | |
Cell[116401, 2766, 508, 11, 34, "Output",ExpressionUUID->"61f2749c-3c0f-48cd-9818-e79c3282ef66"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[116958, 2783, 377, 14, 54, "Subsection",ExpressionUUID->"da78bad0-639f-465d-8111-ba3feef8a14d"], | |
Cell[117338, 2799, 3280, 102, 360, "Text",ExpressionUUID->"a3b6709d-5c51-431a-9bbd-b63a05f4de8e", | |
InitializationCell->True], | |
Cell[CellGroupData[{ | |
Cell[120643, 2905, 1361, 34, 203, "Input",ExpressionUUID->"e941b480-8ca2-43b1-b02e-8c47ef709916"], | |
Cell[122007, 2941, 1769, 47, 38, "Print",ExpressionUUID->"31ff51da-1168-483e-904f-d83e8fe6405d"], | |
Cell[123779, 2990, 554, 11, 24, "Message",ExpressionUUID->"f6f5b244-b8da-4a6c-8c5d-a1cae27ee403"], | |
Cell[124336, 3003, 554, 11, 24, "Message",ExpressionUUID->"0c13626e-b993-4346-b7e1-6a784a8718f3"], | |
Cell[124893, 3016, 1213, 35, 25, "Print",ExpressionUUID->"38d9e991-a03f-483f-924e-974e1902e2c6"], | |
Cell[126109, 3053, 822, 23, 58, "Output",ExpressionUUID->"82eff87a-f852-4add-b0ed-1b96d250f0e2"] | |
}, Open ]] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[126992, 3083, 229, 4, 67, "Section",ExpressionUUID->"32c548ee-83b7-4fbf-9b37-8368a0343e91"], | |
Cell[CellGroupData[{ | |
Cell[127246, 3091, 401, 10, 81, "Subsection",ExpressionUUID->"1b92766a-5b25-48b0-8579-7518f4b80630"], | |
Cell[127650, 3103, 1684, 45, 51, "Text",ExpressionUUID->"d9ffc07e-5c4a-42f6-ac35-81f8ff9a9ba8"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[129371, 3153, 271, 4, 54, "Subsection",ExpressionUUID->"d3663094-9d68-4220-9b49-f6e0775d1752"], | |
Cell[CellGroupData[{ | |
Cell[129667, 3161, 3460, 95, 220, "Input",ExpressionUUID->"0779fd9a-2497-4102-86e0-87e7197a6c01"], | |
Cell[133130, 3258, 4950, 144, 210, "Print",ExpressionUUID->"9b8481d6-e90f-438b-9454-04ace92b377e"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[138129, 3408, 206, 4, 54, "Subsection",ExpressionUUID->"734064bb-f963-437d-bbcc-367e0cb96e11"], | |
Cell[CellGroupData[{ | |
Cell[138360, 3416, 2970, 85, 157, "Input",ExpressionUUID->"9dbb62d8-4b69-4d59-9edb-87035749d888"], | |
Cell[141333, 3503, 4523, 121, 210, "Print",ExpressionUUID->"d66fbfb5-620a-4b87-b8dc-82de9c58d581"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[145905, 3630, 268, 5, 54, "Subsection",ExpressionUUID->"90ecf76a-554c-430a-9632-5b8becf93ab6"], | |
Cell[CellGroupData[{ | |
Cell[146198, 3639, 1193, 32, 73, "Input",ExpressionUUID->"c5085808-cff2-49d9-b7a1-4162212ac570"], | |
Cell[147394, 3673, 1303, 38, 116, "Output",ExpressionUUID->"d3994a33-5cf6-4618-93e5-a5eeb7c59084"] | |
}, Open ]], | |
Cell[148712, 3714, 329, 4, 33, "Text",ExpressionUUID->"7341ee04-192c-4418-b4dc-51e8ff4eecea"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[149078, 3723, 259, 4, 54, "Subsection",ExpressionUUID->"587e37a0-eaaa-4808-a18b-cb3c05e58542"], | |
Cell[CellGroupData[{ | |
Cell[149362, 3731, 210, 4, 45, "Subsubsection",ExpressionUUID->"f4795f2f-6bde-4d73-af74-d2bd1fa209ac"], | |
Cell[CellGroupData[{ | |
Cell[149597, 3739, 4007, 117, 283, "Input",ExpressionUUID->"8dcb4107-b9de-4269-85ad-c14400aff8fb"], | |
Cell[153607, 3858, 4547, 121, 210, "Print",ExpressionUUID->"c7488d0a-3048-4bd2-acfd-e36ae6660ab2"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[158191, 3984, 795, 16, 73, "Input",ExpressionUUID->"a0cbfb75-6bb0-4ddf-a5ad-794369ed6e86"], | |
Cell[158989, 4002, 1263, 26, 20, "Print",ExpressionUUID->"10ecaefd-b9e4-4d19-a24d-503d386834d4"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[160301, 4034, 341, 5, 45, "Subsubsection",ExpressionUUID->"73bd7840-8a81-43d4-b6c0-0305404e2fea"], | |
Cell[CellGroupData[{ | |
Cell[160667, 4043, 4475, 135, 241, "Input",ExpressionUUID->"3446689a-f4dc-48cf-8f92-c83c68355a84"], | |
Cell[165145, 4180, 7983, 215, 380, "Print",ExpressionUUID->"603146d4-f5b7-4664-92c8-ca16e7debe14"] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[173165, 4400, 1243, 27, 94, "Input",ExpressionUUID->"6fc74282-7ce4-4155-856e-103a95947069"], | |
Cell[174411, 4429, 1916, 39, 20, "Print",ExpressionUUID->"79f8e0b0-eacc-4926-b6fb-f946f532e1be"] | |
}, Open ]], | |
Cell[176342, 4471, 286, 4, 33, "Text",ExpressionUUID->"f056d529-12bf-4a68-adbe-844278dded25"] | |
}, Open ]] | |
}, Open ]], | |
Cell[CellGroupData[{ | |
Cell[176677, 4481, 209, 4, 54, "Subsection",ExpressionUUID->"ba0ad053-bf1b-40fd-a413-5452fdfaabd9"], | |
Cell[176889, 4487, 1295, 19, 159, "Text",ExpressionUUID->"8b0a7d15-846c-475e-a26b-532be7fe1637"] | |
}, Open ]] | |
}, Open ]] | |
} | |
] | |
*) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment