(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 3.0, MathReader 3.0, or any compatible application. The data for the notebook starts with the line of stars above. To get the notebook into a Mathematica-compatible application, do one of the following: * Save the data starting with the line of stars above into a file with a name ending in .nb, then open the file inside the application; * Copy the data starting with the line of stars above to the clipboard, then use the Paste menu command inside the application. Data for notebooks contains only printable 7-bit ASCII and can be sent directly in email or through ftp in text mode. Newlines can be CR, LF or CRLF (Unix, Macintosh or MS-DOS style). NOTE: If you modify the data for this notebook not in a Mathematica- compatible application, you must delete the line below containing the word CacheID, otherwise Mathematica-compatible applications may try to use invalid cache data. For more information on notebooks and Mathematica-compatible applications, contact Wolfram Research: web: http://www.wolfram.com email: info@wolfram.com phone: +1-217-398-0700 (U.S.) Notebook reader applications are available free of charge from Wolfram Research. ***********************************************************************) (*CacheID: 232*) (*NotebookFileLineBreakTest NotebookFileLineBreakTest*) (*NotebookOptionsPosition[ 35744, 1704]*) (*NotebookOutlinePosition[ 36678, 1734]*) (* CellTagsIndexPosition[ 36634, 1730]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell[TextData[ "Annexe\nDocuments \[OpenCurlyDoubleQuote]Mathematica\""], "Subtitle", TextAlignment->Center, FontSize->14, FontWeight->"Bold"], Cell[TextData[ "Est indiqu\[EAcute] \[AGrave] gauche de chaque titre la \ r\[EAcute]f\[EAcute]rence du paragraphe illustr\[EAcute] du texte principal"], "Text", FontSize->10] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["II.1. Fonction moins et sg ", FontSize->14], StyleBox["signum", FontSize->14, FontWeight->"Plain"] }], "Subtitle", TextAlignment->Left, FontSize->12, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[{ \(moins[x_, y_] := If[x \[GreaterEqual] y, x - y, 0]\), \({moins[3, 5], moins[6, 2]}\)}], "Input", FontSize->12], Cell[BoxData[ \({0, 4}\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ \(sg[x_] := moins[1, moins[1, x]]\), \({sg[0], sg[1], sg[3]}\)}], "Input", FontSize->12], Cell[BoxData[ \({0, 1, 1}\)], "Output"] }, Open ]], Cell[BoxData[ \(\n\)], "Input"], Cell[TextData[{ StyleBox["II.6. Plus petit entier y", FontWeight->"Bold"], StyleBox["\[LessEqual]", "Input", FontSize->14], StyleBox[ "z, s'il existe, tel que: A[x, y]\[NonBreakingSpace]=\[NonBreakingSpace]0, \ sinon z+1.", FontWeight->"Bold"], "\n", StyleBox[ "6.2. Quotient \[EAcute]l\[EAcute]mentaire de la division euclidienne", FontSize->12, FontWeight->"Bold"] }], "Text", FontSize->14], Cell[CellGroupData[{ Cell[BoxData[{ \(A[{a_, b_}, q_] := moins[a + 1, b \((q + 1)\)]\), \(\t\t\t\t\t\t quot\[EAcute]l[a_, b_] := \[Sum]\+\(l = 0\)\%a\[Product]\+\(q = 0\)\%l sg[A[{a, b}, q]]\), \(\t{quot\[EAcute]l[3, 2], quot\[EAcute]l[4, 0], quot\[EAcute]l[29, 7], quot\[EAcute]l[381, 17]}\)}], "Input", FontSize->12], Cell[BoxData[ \({1, 5, 4, 22}\)], "Output"] }, Open ]], Cell["imm\[EAcute]diat", "Text", FontSize->10], Cell[TextData[StyleBox[ "6.3. Racine carr\[EAcute]e enti\[EGrave]re par d\[EAcute]faut", FontWeight->"Bold"]], "Text", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(A[a_, q_] := moins[\((a + 1)\), \((q + 1)\)\^2]\), \(racd\[EAcute]f\[EAcute]l[a_] := \[Sum]\+\(l = 0\)\%a\[Product]\+\(q = 0\)\%l sg[A[a, q]]\), \({racd\[EAcute]f\[EAcute]l[13], racd\[EAcute]f\[EAcute]l[321]}\)}], "Input", FontSize->12], Cell[BoxData[ \({3, 17}\)], "Output"] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(racd\[EAcute]f\[EAcute]l[5874]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output"] }, Open ]], Cell["Aucune r\[EAcute]ponse au bout de 5 minutes", "Text", FontSize->10], Cell[TextData[StyleBox[ "6. Autre exemple\[NonBreakingSpace]: nombre de chiffres en \[EAcute]criture \ d\[EAcute]cimale d'un nombre entier naturel ", FontSize->12, FontWeight->"Bold"]], "Text"], Cell[CellGroupData[{ Cell[BoxData[{ \(A[n_, k_] := moins[\((n + 1)\), 10\^k]\), \(\t\tnbchif[n_] := \[Sum]\+\(l = 0\)\%n\[Product]\+\(k = 0\)\%l sg[A[n, k]]\), \(\t\t{nbchif[3], nbchif[14], nbchif[99], nbchif[100]}\)}], "Input", FontSize->12], Cell[BoxData[ \({1, 2, 2, 3}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(nbchif[2624]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->10] }, Open ]], Cell["Aucune r\[EAcute]ponse au bout de 6 minutes", "Text", FontSize->10], Cell[BoxData[ \(\n\)], "Input"], Cell[TextData[StyleBox[ "III.2. Fonctions primitives r\[EAcute]cursives, It\[EAcute]ration \[AGrave] \ l'aide de Nest", FontSize->14, FontWeight->"Bold"]], "Text", FontSize->12], Cell[TextData[StyleBox[" Signum en primitive r\[EAcute]cursivit\[EAcute]", FontWeight->"Bold"]], "Text", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(Sg[0] = 0\), \(Sg[x_Integer /; x > 0] := 1\), \({Sg[0], Sg[1], Sg[3]}\)}], "Input", FontSize->12], Cell[BoxData[ \({0, 1, 1}\)], "Output", FontSize->12] }, Open ]], Cell[TextData[StyleBox[ "Pr\[EAcute]decesseur en it\[EAcute]ration pure \[AGrave] 2 arguments", FontSize->12, FontWeight->"Bold"]], "Text", FontSize->16], Cell[BoxData[ RowBox[{ RowBox[{ StyleBox["h", FontSize->12], StyleBox["[", FontSize->12], StyleBox[\({x_, y_}\), FontSize->12], "]"}], ":=", \({y, y + 1}\)}]], "Input", FontSize->12], Cell[BoxData[ \(pd[n_] := \(Nest[h, {0, 0}, n]\)[\([1]\)]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({pd[0], pd[1], pd[2]}\)], "Input", FontSize->12], Cell[BoxData[ \({0, 0, 1}\)], "Output", FontSize->12] }, Open ]], Cell[TextData[StyleBox[ "Diff\[EAcute]rence positive en it\[EAcute]ration pure \[AGrave] un argument", FontWeight->"Bold", FontSlant->"Plain"]], "Text", FontSize->12, FontWeight->"Bold", FontSlant->"Italic"], Cell[BoxData[ \(Moins[x_, y_] := Nest[pd, x, y]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({Moins[3, 1], Moins[1, 3]}\)], "Input", FontSize->12], Cell[BoxData[ \({2, 0}\)], "Output", FontSize->12] }, Open ]], Cell[TextData[ "Factorielle en it\[EAcute]ration pure \[AGrave] deux arguments"], "Text", FontSize->12, FontWeight->"Bold"], Cell[BoxData[ \(g[{u_, v_}] := {\((v + 1)\)\[Times]u, v + 1}\)], "Input", FontSize->12], Cell[BoxData[ \(fact[n_] := \(Nest[g, {1, 0}, n]\)[\([1]\)]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({fact[0], fact[5], fact[12]}\)], "Input", FontSize->12], Cell[BoxData[ \({1, 120, 479001600}\)], "Output", FontSize->12] }, Open ]], Cell[TextData[StyleBox[ "Quotient de la division euclidienne en it\[EAcute]ration pure \[AGrave] \ trois arguments", FontWeight->"Bold"]], "Text", FontSize->12], Cell[BoxData[ \(c[{q_, a_, b_}] := {q + Sg[moins[\((a + 2)\), b\[Times]\((q + 1)\)]], a + 1, b}\)], "Input", FontSize->12], Cell[BoxData[ \(quotit[a_, b_] := \(Nest[c, {0, 0, b}, a]\)[\([1]\)]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({quotit[3, 2], quotit[4, 0], quotit[29, 7], quotit[381, 17]}\)], "Input",\ FontSize->12], Cell[BoxData[ \({1, 4, 4, 22}\)], "Output", FontSize->12] }, Open ]], Cell["Relativement long (10 secondes)", "Text", FontSize->10], Cell[TextData[StyleBox[ "Quotient de la division euclidienne en it\[EAcute]ration \[AGrave] deux \ arguments et un param\[EGrave]tre", FontSize->12, FontWeight->"Bold"]], "Text"], Cell[BoxData[ \(ct[{q_, a_}, b_] := { q + If[b\[Times]\((q + 1)\) \[LessEqual] a + 1, 1, 0], a + 1}\)], "Input", FontSize->12], Cell[BoxData[ \(Quotit[a_, b_] := \(Nest[ct[#, b]&, {0, 0}, a]\)[\([1]\)]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({Quotit[3, 2], Quotit[4, 0], Quotit[29, 7], Quotit[381, 17]}\)], "Input",\ FontSize->12], Cell[BoxData[ \({1, 4, 4, 22}\)], "Output", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[TextData[StyleBox[ "III.7.4. Surexponentielle de base 2 [exponentielle de base 2 \ compos\[EAcute]e k fois avec elle m\[EHat]me agissant sur 1]", FontWeight->"Bold"]], "Text", FontSize->12], Cell[BoxData[{ \(exp\_2[x_] := 2\^x\), \(\tsurexp\_2[k_] := Nest[exp\_2, 1, k]\)}], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({surexp\_2[0], surexp\_2[1], surexp\_2[3], surexp\_2[4]}\)], "Input", FontSize->12], Cell[BoxData[ \({1, 2, 16, 65536}\)], "Output", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[BoxData[ \(\n\)], "Input"], Cell["\<\ IV.3.5. Addition d\[EAcute]cimale par la technique \ enseign\[EAcute]e \[AGrave] l'\[EAcute]cole primaire\ \>", "Text", FontSize->14, FontWeight->"Bold"], Cell[TextData[StyleBox["Calculs pr\[EAcute]paratoires", FontWeight->"Bold"]], "Text", FontSize->12], Cell["Inversion de l'ordre d'une liste", "Text", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(inv[u_] := Table[u[\([Length[u] + 1 - k]\)], {k, Length[u]}]\), \(\t\tinv[{1, 3, 5}]\)}], "Input", FontSize->12], Cell[BoxData[ \({5, 3, 1}\)], "Output"] }, Open ]], Cell[TextData[ "Prolongement \[AGrave] la longueur l d'une liste par des 0 \[AGrave] \ droite"], "Text", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(pro[l_, u_] := Table[If[k \[LessEqual] Length[u], u[\([k]\)], 0], {k, l}]\), \(pro[5, {1, 3, 6}]\)}], "Input", FontSize->12], Cell[BoxData[ \({1, 3, 6, 0, 0}\)], "Output"] }, Open ]], Cell[TextData[ "Addition de deux listes de longueur \[EAcute]ventuellement \ diff\[EAcute]rente"], "Text", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(Som[u_, v_] := pro[Max[Length[u], Length[v]], u] + pro[Max[Length[u], Length[v]], v]\), \(Som[{1, 2}, {5, 3, 8}]\)}], "Input", FontSize->12], Cell[BoxData[ \({6, 5, 8}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Som[{1, 0, 6}, {7}]\)], "Input", FontSize->12], Cell[BoxData[ \({8, 0, 6}\)], "Output"] }, Open ]], Cell[TextData[ "Transformation d'une liste en prolongeant d'une unit\[EAcute] \[AGrave] \ droite et en ajoutant \[AGrave] chaque terme les dizaines de celui qui est \ plac\[EAcute] \[AGrave] sa gauche, \"technique dite des retenues\ \[CloseCurlyDoubleQuote]"], "Text", FontSize->12], Cell[BoxData[{ \(x = {31, 12, 34}\), \(x = pro[Length[x] + 1, x]\), \(k = 1\), \(While[k \[LessEqual] Length[x], x[\([k]\)] = x[\([k]\)] + If[k > 1, Quotient[x[\([k - 1]\)], 10], 0]; k = k + 1]\n\)}], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(x\)], "Input", FontSize->12], Cell[BoxData[ \({31, 15, 35, 3}\)], "Output", FontSize->12] }, Open ]], Cell["\<\ Transformation d'une liste en ne conservant que les termes modulo \ 10\ \>", "Text", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(k = 1\), \(While[k \[LessEqual] Length[x], x[\([k]\)] = Mod[x[\([k]\)], 10]; k = k + 1]\), \(x\)}], "Input", FontSize->12], Cell[BoxData[ \(1\)], "Output"], Cell[BoxData[ \({1, 5, 5, 3}\)], "Output", FontSize->12] }, Open ]], Cell[TextData[StyleBox[ "Addition de deux listes de chiffres interpr\[EAcute]t\[EAcute]es comme des \ nombres entiers en \[EAcute]criture d\[EAcute]cimale", FontWeight->"Bold"]], "Text", FontSize->12], Cell[BoxData[ \(\(Add\[EAcute]c[u_, v_] := \((s = Som[inv[u], inv[v]]; s = pro[Length[s] + 1, s]; k = 1; \n\ \ \ \ While[k \[LessEqual] Length[s], s[\([k]\)] = s[\([k]\)] + If[k > 1, Quotient[s[\([k - 1]\)], 10], 0]; k = k + 1]; \n\ \ \ \ k = 1; While[k \[LessEqual] Length[s], s[\([k]\)] = Mod[s[\([k]\)], 10]; k = k + 1]; inv[s])\)\n\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(Add\[EAcute]c[{9, 8, 1}, {9, 4, 0, 1}]\), \(981 + 9401\)}], "Input", FontSize->12], Cell[BoxData[ \({1, 0, 3, 8, 2}\)], "Output", FontSize->12], Cell[BoxData[ \(10382\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ \(Add\[EAcute]c[{4, 5, 8}, {7, 9, 6, 4}]\), \(458 + 7964\)}], "Input", FontSize->12], Cell[BoxData[ \({0, 8, 4, 2, 2}\)], "Output", FontSize->12], Cell[BoxData[ \(8422\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ \(Add\[EAcute]c[{5, 9, 8, 3, 9, 7, 5, 6, 3, 1, 0, 6}, {8, 1, 0, 6, 4, 3, 9}]\), \(598397563106 + 8106439\)}], "Input", FontSize->12], Cell[BoxData[ \({0, 5, 9, 8, 4, 0, 5, 6, 6, 9, 5, 4, 5}\)], "Output", FontSize->12], Cell[BoxData[ \(598405669545\)], "Output", FontSize->12] }, Open ]], Cell[TextData["Imm\[EAcute]diat"], "Text", FontSize->10], Cell[BoxData[ \(\n\)], "Input"], Cell[TextData[StyleBox["V.2. Seconde r\[EAcute]cursivit\[EAcute]", FontSize->14, FontWeight->"Bold"]], "Text", FontSize->14], Cell["\<\ Le rcours \[AGrave] une programmation avec des \"-1\", ce que \ certains appellent une \"r\[EAcute]currence descendante\", permet, au moins \ dans certains cas, de programmer la deuxi\[EGrave]me r\[EAcute]cursivit\ \[EAcute].\ \>", "Text", FontSize->10], Cell[TextData[StyleBox["V.3.1. Coefficients du bin\[OHat]me", FontSize->12, FontWeight->"Bold"]], "Text", FontSize->12], Cell[TextData[StyleBox["M\[EAcute]thode 2-r\[EAcute]cursive", FontWeight->"Bold"]], "Text", FontSize->10], Cell[BoxData[ \(cb[0, k_] := If[k > 0, 0, 1]\)], "Input", FontSize->12], Cell[BoxData[ \(cb[n_Integer /; n > 0, k_] := Sg[k]\[Times]cb[n - 1, k - 1] + cb[n - 1, k]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({cb[2, 1], cb[3, 2], cb[4, 2]}\)], "Input", FontSize->12], Cell[BoxData[ \({2, 3, 6}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(cb[21, 9]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->10] }, Open ]], Cell["Aucune r\[EAcute]ponse apr\[EGrave]s plus d'une minute", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(Quotient[\(21!\), \(9!\)\[Times]\(12!\)]\)], "Input", FontSize->12], Cell[BoxData[ \(293930\)], "Output", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(cb[256, 5]\)], "Input", FontSize->12], Cell[BoxData[ \($RecursionLimit::"reclim" \( : \ \) "Recursion depth of \!\(256\) exceeded."\)], "Message", FontSize->12] }, Open ]], Cell[TextData[ "La m\[EAcute]thode limit\[EAcute]e \[AGrave] 256[ ] retombe par l\[AGrave] m\ \[EHat]me dans un algorithme primitif r\[EAcute]cursif"], "Text", FontSize->10], Cell["M\[EAcute]thode primitive r\[EAcute]cursive avec listes et Nest", "Text", FontSize->10, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[ \(Table[ If[And[1 < k, k \[LessEqual] Length[l]], l[\([k]\)] + l[\([k - 1]\)], 1], {k, Length[l] + 1}]\)], "Input", FontSize->12], Cell[BoxData[ \({1}\)], "Output"] }, Open ]], Cell[BoxData[ \(g[l_] := Table[If[And[1 < k, k \[LessEqual] Length[l]], l[\([k]\)] + l[\([k - 1]\)], 1], {k, Length[l] + 1}]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[{ \(lcb[n_] := Nest[g, {1}, n]\), \(lcb[6]\)}], "Input", FontSize->12], Cell[BoxData[ \({1, 6, 15, 20, 15, 6, 1}\)], "Output", FontSize->12] }, Open ]], Cell["Presque imm\[EAcute]diat", "Text", FontSize->10], Cell[BoxData[ \(Cb[n_, k_] := \(lcb[n]\)[\([k + 1]\)]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({Cb[2, 1], Cb[3, 2], Cb[4, 2]}\)], "Input", FontSize->12], Cell[BoxData[ \({2, 3, 6}\)], "Output", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(Cb[21, 9]\)], "Input", FontSize->12], Cell[BoxData[ \(293930\)], "Output", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(Cb[256, 5]\)], "Input", FontSize->12], Cell[BoxData[ \(8809549056\)], "Output", FontSize->12] }, Open ]], Cell[TextData["Imm\[EAcute]diat"], "Text", FontSize->10], Cell[TextData[StyleBox["V.3.2. Fonction d'Ackermann", FontSize->12, FontWeight->"Bold"]], "Text", FontSize->16], Cell["\<\ Calcul \[AGrave] l'aide d'un seul programme par r\[EAcute]currence \ descendante\ \>", "Text", FontSize->10, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[{ \(Ac[0, x_Integer /; x \[GreaterEqual] 0] = x + 1\), \(Ac[n_Integer /; n > 0, 0] := Ac[n - 1, 1]\), \(Ac[n_Integer /; n > 0, x_Integer /; x > 0] := \(Ac[n, x] = Ac[n - 1, Ac[n, x - 1]]\)\)}], "Input", FontSize->12], Cell[BoxData[ \(1 + x\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ac[0, 5], Ac[1, 0], Ac[2, 1], Ac[3, 1], Ac[3, 2], Ac[3, 3], Ac[3, 6], Ac[4, 0]}\)], "Input", FontSize->12], Cell[BoxData[ \({6, 2, 5, 13, 29, 61, 509, 13}\)], "Output", FontSize->12] }, Open ]], Cell[TextData["Imm\[EAcute]diat"], "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(Ac[4, 1]\)], "Input", FontSize->12], Cell[BoxData[ \($RecursionLimit::"reclim" \( : \ \) "Recursion depth of \!\(256\) exceeded."\)], "Message", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->12] }, Open ]], Cell[TextData[ "La m\[EAcute]thode limit\[EAcute]e \[AGrave] 256[ ] retombe par l\[AGrave] m\ \[EHat]me dans un algorithme primitif r\[EAcute]cursif"], "Text", FontSize->10], Cell[TextData[StyleBox[ "Ackermann calcul\[EAcute]e par une suite de fonctions primitives \ r\[EAcute]cursives", FontWeight->"Bold"]], "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[{ \(Ac0[x_] = x + 1\), \(Ac1[x_] := Nest[Ac0, 1, x + 1]\)}], "Input"], Cell[BoxData[ \(1 + x\)], "Output"] }, Open ]], Cell[BoxData[ \(Ac2[x_] := Nest[Ac1, 1, x + 1]\)], "Input"], Cell[BoxData[ \(Ac3[x_] := Nest[Ac2, 1, x + 1]\)], "Input"], Cell[BoxData[ \(Ac4[x_] := Nest[Ac3, 1, x + 1]\)], "Input"], Cell[CellGroupData[{ Cell[BoxData[ \({Ac0[5], Ac1[0], Ac2[1], Ac3[1], Ac3[2], Ac3[3], Ac3[6], Ac4[0]}\)], "Input", FontSize->12], Cell[BoxData[ \({6, 2, 5, 13, 29, 61, 509, 13}\)], "Output", FontSize->12] }, Open ]], Cell["10 secondes", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(Ac4[1]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->12] }, Open ]], Cell[TextData[{ "Aucune r\[EAcute]ponse apr\[EGrave]s plus de 5 minutes. \nAc4[1] = \ Ac3[Ac3[1]] = Ac3[13]\n", "On montre facilement A3[x] = ", Cell[BoxData[ \(TraditionalForm\`2\^\(x + 3\) - 3\)]] }], "Text", FontSize->10], Cell[BoxData[ \(Ack3[x_] := 2\^\(x + 3\) - 3\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(Ack3[13]\)], "Input", FontSize->12], Cell[BoxData[ \(65533\)], "Output", FontSize->12] }, Open ]], Cell[TextData["Imm\[EAcute]diat"], "Text", FontSize->10], Cell[TextData[StyleBox["V.3.3. Fonction d'Ackermann-bis", FontSize->12, FontWeight->"Bold"]], "Text"], Cell[TextData[StyleBox[ "Fonction h[k, x] auxiliaire d'nitialisation de Ab[k+1, x, 0]", FontSize->10]], "Text", FontSize->12], Cell[BoxData[ \(h[n_, x_] := If[n < 1, 1, 0]\[Times]x + If[1 < n, 1, 0]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({h[0, x], h[1, 3], h[3, 5]}\)], "Input", FontSize->12], Cell[BoxData[ \({x, 0, 1}\)], "Output"] }, Open ]], Cell[TextData[StyleBox[ "Calcul \[AGrave] l'aide d'un seul programme par \"r\[EAcute]currence \ descendante\"", FontSize->10, FontWeight->"Bold"]], "Text"], Cell[BoxData[{ \(Ab[0, x_, y_] := y + 1\), \(Ab[n_Integer /; n > 0, x_, 0] := h[n - 1, x]\), \(\t\tAb[n_Integer /; n > 0, x_Integer /; x \[GreaterEqual] 0, y_Integer /; y > 0] := Ab[n - 1, x, Ab[n, x, y - 1]]\)}], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(Ab[0, x, y]\)], "Input", FontSize->12], Cell[BoxData[ \(1 + y\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab[1, 3, 5], Ab[1, 24, 18]}\)], "Input", FontSize->12], Cell[BoxData[ \({8, 42}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab[2, 3, 5], Ab[2, 4, 7]}\)], "Input", FontSize->12], Cell[BoxData[ \({15, 28}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab[3, 2, 4], Ab[3, 3, 5]}\)], "Input", FontSize->12], Cell[BoxData[ \({16, 243}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab[4, 3, 2], Ab[4, 2, 3]}\)], "Input", FontSize->12], Cell[BoxData[ \({27, 16}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Ab[4, 3, 3]\)], "Input", FontSize->12], Cell[BoxData[ \($RecursionLimit::"reclim" \( : \ \) "Recursion depth of \!\(256\) exceeded."\)], "Message", FontSize->12] }, Open ]], Cell[TextData[ "La m\[EAcute]thode limit\[EAcute]e \[AGrave] 256[ ] retombe encore, par l\ \[AGrave] m\[EHat]me, dans un algorithme primitif r\[EAcute]cursif"], "Text",\ FontSize->10], Cell[TextData[StyleBox[ "Ackermann-bis calcul\[EAcute]e par une suite de fonctions primitives r\ \[EAcute]cursives", FontSize->10, FontWeight->"Bold"]], "Text"], Cell[BoxData[ \(Ab0[x_, y_] := y + 1\)], "Input", FontSize->12], Cell[BoxData[ \(Ab1[x_, y_] := Nest[Ab0[x, #]&, x, y]\)], "Input", FontSize->12], Cell[BoxData[ \(Ab2[x_, y_] := Nest[Ab1[x, #]&, 0, y]\)], "Input", FontSize->12], Cell[BoxData[ \(Ab3[x_, y_] := Nest[Ab2[x, #]&, 1, y]\)], "Input", FontSize->12], Cell[BoxData[ \(Ab4[x_, y_] := Nest[Ab3[x, #]&, 1, y]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \({Ab1[3, 5], Ab1[24, 18]}\)], "Input", FontSize->12], Cell[BoxData[ \({8, 42}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab2[3, 5], Ab2[4, 7]}\)], "Input", FontSize->12], Cell[BoxData[ \({15, 28}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab3[2, 4], Ab3[3, 5]}\)], "Input", FontSize->12], Cell[BoxData[ \({16, 243}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \({Ab4[3, 2], Ab4[2, 3]}\)], "Input", FontSize->12], Cell[BoxData[ \({27, 16}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(Ab4[3, 3]\)], "Input"], Cell[BoxData[ \($Aborted\)], "Output"] }, Open ]], Cell[TextData[{ "Aucune r\[EAcute]ponse apr\[EGrave]s 4minutes\nOn montre facilement: Ab[4, \ 3, 3] = Ab4[3, 3] = ", Cell[BoxData[ \(3\^27\)]] }], "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(3\^27\)], "Input", FontSize->12], Cell[BoxData[ \(7625597484987\)], "Output", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat", "Text", FontSize->10], Cell[BoxData[ \(\n\)], "Input", FontSize->12], Cell[TextData["VI. \[Mu]-r\[EAcute]cursivit\[EAcute] et While"], "Text", FontSize->14, FontWeight->"Bold"], Cell[TextData[{ StyleBox[ "Nombre de chiffres en \[EAcute]criture d\[EAcute]cimale d'un entier \ naturel n\n", FontWeight->"Bold"], StyleBox[" Sans test \"borne\"", FontSize->10, FontWeight->"Bold"] }], "Text", FontSize->12], Cell[BoxData[ \(nbchi[n_] := \((k = 0; While[10\^k \[LessEqual] n, k = k + 1]; Print[k])\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(nbchi[3]; nbchi[14]; nbchi[99]; nbchi[100]; nbchi[2624]; nbchi[347210986549876190053]\)], "Input", FontSize->12], Cell[BoxData[ \(1\)], "Print", FontSize->12], Cell[BoxData[ \(2\)], "Print", FontSize->12], Cell[BoxData[ \(2\)], "Print", FontSize->12], Cell[BoxData[ \(3\)], "Print", FontSize->12], Cell[BoxData[ \(4\)], "Print", FontSize->12], Cell[BoxData[ \(21\)], "Print", FontSize->12] }, Open ]], Cell[TextData[StyleBox["Avec test \"borne\"", FontSize->10, FontWeight->"Bold"]], "Text", FontSize->12], Cell[BoxData[ \(nbch[n_] := \((k = 0; While[And[10\^k \[LessEqual] n, k \[LessEqual] n], k = k + 1]; Print[k])\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(nbch[3]; nbch[14]; nbch[99]; nbch[100]; nbch[2624]; nbch[347210986549876190053]\)], "Input", FontSize->12], Cell[BoxData[ \(1\)], "Print", FontSize->12], Cell[BoxData[ \(2\)], "Print", FontSize->12], Cell[BoxData[ \(2\)], "Print", FontSize->12], Cell[BoxData[ \(3\)], "Print", FontSize->12], Cell[BoxData[ \(4\)], "Print", FontSize->12], Cell[BoxData[ \(21\)], "Print", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diat dans les deux cas", "Text", FontSize->10], Cell[TextData[{ StyleBox["VI.I.2. Quotient de la division euclidienne en ", FontWeight->"Bold"], StyleBox["\[Mu]", FontFamily->"Symbol", FontWeight->"Bold"], StyleBox["-r\[EAcute]cursivit\[EAcute]\n", FontWeight->"Bold"], StyleBox["Sans test \"borne\"", FontSize->10, FontWeight->"Bold"] }], "Text", FontSize->12], Cell[BoxData[ \(\(quotmur[a_, b_] := \((q = 0; While[b\[Times]\((q + 1)\) \[LessEqual] a, q = q + 1]; Print[q])\)\t\n\t\t\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(quotmur[3, 2]\)], "Input", FontSize->12], Cell[BoxData[ \(1\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(quotmur[29, 7]\)], "Input", FontSize->12], Cell[BoxData[ \(4\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(quotmur[381, 17]\)], "Input", FontSize->12], Cell[BoxData[ \(22\)], "Print", FontSize->12] }, Open ]], Cell["Imm\[EAcute]diats", "Text", FontSize->10], Cell[CellGroupData[{ Cell[BoxData[ \(quotmur[4, 0]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->12] }, Open ]], Cell["Tourne sans fin", "Text", FontSize->10], Cell[TextData[StyleBox["Avec test borne", FontSize->10]], "Text", FontSize->12, FontWeight->"Bold"], Cell[BoxData[ \(quotmub[a_, b_] := \((q = 0; While[And[b\[Times]\((q + 1)\) \[LessEqual] a, q \[LessEqual] a], q = q + 1]; Print[q])\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(quotmub[3, 2]\)], "Input", FontSize->12], Cell[BoxData[ \(1\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(quotmub[4, 0]\)], "Input", FontSize->12], Cell[BoxData[ \(5\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(quotmub[29, 7]\)], "Input", FontSize->12], Cell[BoxData[ \(4\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(quotmub[381, 17]\)], "Input", FontSize->12], Cell[BoxData[ \(22\)], "Print", FontSize->12] }, Open ]], Cell[TextData["Tous imm\[EAcute]diats"], "Text", FontSize->10], Cell[TextData[{ StyleBox["VI.2.", FontWeight->"Bold"], "\nMalgr\[EAcute] le risque de tourner sans fin, ", StyleBox["While", FontWeight->"Bold"], " semble plus simple \[AGrave] programmer et par l\[AGrave] m\[EHat]me plus \ attractif pour l'utilisateur. Pour \[EAcute]viter ce risque, il y a toujours \ moyen, lorsque \[CCedilla]\[AGrave] se termine, de transformer en la \ conjonction d'une minimisation born\[EAcute]e et d'une primitive \ r\[EAcute]cursivit\[EAcute] par l'introduction d'un double test, le deuxi\ \[EGrave]me \[EAcute]tant simplement un test de \ majoration.\[NonBreakingSpace]Aussi, je pr\[EAcute]conise pour ma part \ d'introduire un nouveau While \[AGrave] trois places [test, borne, expression \ ou sous-programme] : voir exemple du nombre de chiffres en \[EAcute]criture d\ \[EAcute]cimale et du quotient ci-dessus et encore d'autres exemples \ ci-dessous." }], "Text", TextJustification->1, FontSize->10], Cell[TextData[{ StyleBox["Primitive r\[EAcute]cursivit\[EAcute] \[AGrave] l'aide de While", FontWeight->"Bold"], "\n", StyleBox[ "Le premier test disparait, seul le test de borne subsiste, on a ainsi une \ nouvelle fa\[CCedilla]on de faire de l'it\[EAcute]ration pure ou m\[EHat]me \ de la primitive r\[EAcute]cursivit\[EAcute].", FontSize->10] }], "Text", FontSize->12], Cell[TextData[StyleBox["Exponentielle de base 2", FontSize->10, FontWeight->"Bold"]], "Text", FontSize->12], Cell[BoxData[ \(exp\_2[n_] := \((k := 0; u = 1; While[k < n, k = k + 1; u = u\[Times]2]; Print[u]) \)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(exp\_2[10]\)], "Input", FontSize->12], Cell[BoxData[ \(1024\)], "Print", FontSize->12] }, Open ]], Cell[TextData[StyleBox["Factorielle", FontSize->10, FontWeight->"Bold"]], "Text", FontSize->12], Cell[BoxData[ \(factorielle[n_] := \((k := 0; u = 1; While[k < n, k = k + 1; u = u\[Times]k]; Print[u]) \)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(factorielle[4]\)], "Input", FontSize->12], Cell[BoxData[ \(24\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(factorielle[100]\)], "Input", FontSize->12], Cell[BoxData[ \(933262154439441526816992388562667004907159682643816214685929638952175999\ 932299156089414639761565182862536979208272237582511852109168640000000000000000\ 00000000\)], "Print", FontSize->12] }, Open ]], Cell["Tous imm\[EAcute]diats", "Text", FontSize->10], Cell[TextData[{ StyleBox[ "VI.3. Exemple de suite r\[EAcute]cursive partielle impr\[EAcute]visible", FontWeight->"Bold"], StyleBox["\n", FontSize->14, FontWeight->"Bold", FontSlant->"Italic"], StyleBox[ "Partons d'un entier naturel n, s'il est pair on le divise par 2, s'il est \ impair on le multiplie par 3 et on retranche 1. On s'arr\[EHat]te d\[EGrave]s \ qu'on obtient 1. Ce programme risque de tourner sans fin. Le nombre de pas \ pour arriver \[AGrave] 1 fournit une fonction partielle r\[EAcute]cursive.\n\ La suite ", FontSize->10], StyleBox["term", FontSize->10, FontWeight->"Bold"], StyleBox[ " ci-dessous est primitive r\[EAcute]cursive par l'introduction d'un \ double test avec borne dans un While. Elle fournit {nombre de pas pour\ \[NonBreakingSpace]arriver \[AGrave] 1, 1} pour : 1, 2, 3, 4, 6 ; {borne+1, \ valeur de la suite en (borne+1)} pour 5, 7 . ", FontSize->10] }], "Text", FontSize->12], Cell[BoxData[ \(term[n_] := \((p = 0; k = n; While[And[k > 1, p \[LessEqual] 10], p = p + 1; If[Mod[k, 2] == 0, k = Quotient[k, 2], k = 3 k - 1]]; Print[{p, k}])\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(term[1]\)], "Input", FontSize->12], Cell[BoxData[ \({0, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(term[2]\)], "Input", FontSize->12], Cell[BoxData[ \({1, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(term[3]\)], "Input", FontSize->12], Cell[BoxData[ \({4, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(term[4]\)], "Input", FontSize->12], Cell[BoxData[ \({2, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(term[5]\)], "Input", FontSize->12], Cell[BoxData[ \({11, 14}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(term[6]\)], "Input", FontSize->12], Cell[BoxData[ \({5, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(term[7]\)], "Input", FontSize->12], Cell[BoxData[ \({11, 20}\)], "Print", FontSize->12] }, Open ]], Cell[TextData[ " La suite auxiliaire d\[EAcute]finie \[AGrave] l'aide de u et de Nest (it\ \[EAcute]ration pure) explicite le ph\[EAcute]nom\[EGrave]ne."], "Text", FontSize->10], Cell[BoxData[ \(u[k_] := If[Mod[k, 2] == 0, Quotient[k, 2], 3 k - 1]\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(NestList[u, 5, 11]\)], "Input", FontSize->12], Cell[BoxData[ \({5, 14, 7, 20, 10, 5, 14, 7, 20, 10, 5, 14}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(NestList[u, 3, 11]\)], "Input", FontSize->12], Cell[BoxData[ \({3, 8, 4, 2, 1, 2, 1, 2, 1, 2, 1, 2}\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(NestList[u, 7, 11]\)], "Input", FontSize->12], Cell[BoxData[ \({7, 20, 10, 5, 14, 7, 20, 10, 5, 14, 7, 20}\)], "Output", FontSize->12] }, Open ]], Cell[TextData[{ "En supprimmant le test de borne dans ", StyleBox["term", FontWeight->"Bold"], ", la suite ", StyleBox["ter", FontWeight->"Bold"], " ci-dessous, est partielle r\[EAcute]cursive, tourne sans fin pour 5, 7 \ mais elle fournit la r\[EAcute]ponse {nombre de pas,1} pour\ \[NonBreakingSpace]: 1, 2, 3, 4, 6 . " }], "Text", FontSize->10], Cell[BoxData[ \(ter[n_] := \((p = 0; k = n; While[k > 1, p = p + 1; If[Mod[k, 2] == 0, k = Quotient[k, 2], k = 3 k - 1]]; Print[{p, k}])\)\)], "Input", FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ \(ter[1]\)], "Input", FontSize->12], Cell[BoxData[ \({0, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[2]\)], "Input", FontSize->12], Cell[BoxData[ \({1, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[2]\)], "Input", FontSize->12], Cell[BoxData[ \({1, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[3]\)], "Input", FontSize->12], Cell[BoxData[ \({4, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[4]\)], "Input", FontSize->12], Cell[BoxData[ \({2, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[5]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[6]\)], "Input", FontSize->12], Cell[BoxData[ \({5, 1}\)], "Print", FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(ter[7]\)], "Input", FontSize->12], Cell[BoxData[ \($Aborted\)], "Output", FontSize->10] }, Open ]] }, Open ]] }, FrontEndVersion->"Macintosh 3.0", ScreenRectangle->{{0, 800}, {0, 580}}, ScreenStyleEnvironment->"Presentation", WindowSize->{520, 485}, WindowMargins->{{99, Automatic}, {Automatic, 21}}, PrintingCopies->1, PrintingPageRange->{1, Automatic}, MacintoshSystemPageSetup->"\<\ 00<0004/0B`000003;H8`_mooh/=<`Tk0fL5N`?P0080004/0B`000000]P2:001 0000I00000400`<30?l00BL?00400@<]Tn0000000000060801T1T00000000000 00000000004000000000000000000000\>" ] (*********************************************************************** Cached data follows. If you edit this Notebook file directly, not using Mathematica, you must remove the line containing CacheID at the top of the file. The cache data will then be recreated when you save this file from within Mathematica. ***********************************************************************) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1731, 51, 148, 4, 63, "Subtitle"], Cell[1882, 57, 179, 4, 37, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[2098, 66, 218, 9, 49, "Subtitle"], Cell[CellGroupData[{ Cell[2341, 79, 138, 3, 49, "Input"], Cell[2482, 84, 40, 1, 36, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[2559, 90, 114, 3, 49, "Input"], Cell[2676, 95, 43, 1, 36, "Output"] }, Open ]], Cell[2734, 99, 35, 1, 56, "Input"], Cell[2772, 102, 428, 15, 59, "Text"], Cell[CellGroupData[{ Cell[3225, 121, 331, 7, 118, "Input"], Cell[3559, 130, 47, 1, 36, "Output"] }, Open ]], Cell[3621, 134, 48, 1, 37, "Text"], Cell[3672, 137, 136, 3, 39, "Text"], Cell[CellGroupData[{ Cell[3833, 144, 279, 6, 109, "Input"], Cell[4115, 152, 41, 1, 36, "Output"] }, Open ]], Cell[4171, 156, 48, 1, 37, "Text"], Cell[CellGroupData[{ Cell[4244, 161, 79, 2, 33, "Input"], Cell[4326, 165, 42, 1, 36, "Output"] }, Open ]], Cell[4383, 169, 75, 1, 37, "Text"], Cell[4461, 172, 197, 4, 39, "Text"], Cell[CellGroupData[{ Cell[4683, 180, 244, 5, 107, "Input"], Cell[4930, 187, 62, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[5029, 194, 61, 2, 33, "Input"], Cell[5093, 198, 58, 2, 31, "Output"] }, Open ]], Cell[5166, 203, 75, 1, 37, "Text"], Cell[5244, 206, 35, 1, 56, "Input"], Cell[5282, 209, 184, 5, 40, "Text"], Cell[5469, 216, 122, 2, 39, "Text"], Cell[CellGroupData[{ Cell[5616, 222, 130, 4, 65, "Input"], Cell[5749, 228, 59, 2, 32, "Output"] }, Open ]], Cell[5823, 233, 159, 4, 39, "Text"], Cell[5985, 239, 250, 9, 33, "Input"], Cell[6238, 250, 90, 2, 33, "Input"], Cell[CellGroupData[{ Cell[6353, 256, 70, 2, 33, "Input"], Cell[6426, 260, 59, 2, 32, "Output"] }, Open ]], Cell[6500, 265, 220, 7, 39, "Text"], Cell[6723, 274, 80, 2, 33, "Input"], Cell[CellGroupData[{ Cell[6828, 280, 75, 2, 33, "Input"], Cell[6906, 284, 56, 2, 32, "Output"] }, Open ]], Cell[6977, 289, 127, 3, 39, "Text"], Cell[7107, 294, 93, 2, 33, "Input"], Cell[7203, 298, 92, 2, 33, "Input"], Cell[CellGroupData[{ Cell[7320, 304, 77, 2, 33, "Input"], Cell[7400, 308, 69, 2, 32, "Output"] }, Open ]], Cell[7484, 313, 164, 4, 39, "Text"], Cell[7651, 319, 137, 3, 49, "Input"], Cell[7791, 324, 101, 2, 33, "Input"], Cell[CellGroupData[{ Cell[7917, 330, 111, 3, 49, "Input"], Cell[8031, 335, 63, 2, 32, "Output"] }, Open ]], Cell[8109, 340, 63, 1, 37, "Text"], Cell[8175, 343, 182, 4, 39, "Text"], Cell[8360, 349, 143, 4, 33, "Input"], Cell[8506, 355, 106, 2, 33, "Input"], Cell[CellGroupData[{ Cell[8637, 361, 111, 3, 49, "Input"], Cell[8751, 366, 63, 2, 32, "Output"] }, Open ]], Cell[8829, 371, 48, 1, 37, "Text"], Cell[8880, 374, 198, 4, 58, "Text"], Cell[9081, 380, 117, 3, 52, "Input"], Cell[CellGroupData[{ Cell[9223, 387, 105, 2, 34, "Input"], Cell[9331, 391, 67, 2, 32, "Output"] }, Open ]], Cell[9413, 396, 48, 1, 37, "Text"], Cell[9464, 399, 35, 1, 56, "Input"], Cell[9502, 402, 167, 5, 40, "Text"], Cell[9672, 409, 103, 2, 39, "Text"], Cell[9778, 413, 64, 1, 38, "Text"], Cell[CellGroupData[{ Cell[9867, 418, 140, 3, 65, "Input"], Cell[10010, 423, 43, 1, 36, "Output"] }, Open ]], Cell[10068, 427, 121, 3, 38, "Text"], Cell[CellGroupData[{ Cell[10214, 434, 159, 4, 65, "Input"], Cell[10376, 440, 49, 1, 36, "Output"] }, Open ]], Cell[10440, 444, 122, 3, 38, "Text"], Cell[CellGroupData[{ Cell[10587, 451, 178, 5, 65, "Input"], Cell[10768, 458, 59, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[10864, 465, 68, 2, 33, "Input"], Cell[10935, 469, 43, 1, 36, "Output"] }, Open ]], Cell[10993, 473, 284, 5, 56, "Text"], Cell[11280, 480, 258, 7, 113, "Input"], Cell[CellGroupData[{ Cell[11563, 491, 50, 2, 33, "Input"], Cell[11616, 495, 65, 2, 32, "Output"] }, Open ]], Cell[11696, 500, 110, 4, 38, "Text"], Cell[CellGroupData[{ Cell[11831, 508, 162, 5, 81, "Input"], Cell[11996, 515, 35, 1, 36, "Output"], Cell[12034, 518, 62, 2, 32, "Output"] }, Open ]], Cell[12111, 523, 204, 4, 58, "Text"], Cell[12318, 529, 441, 9, 129, "Input"], Cell[CellGroupData[{ Cell[12784, 542, 110, 3, 49, "Input"], Cell[12897, 547, 65, 2, 32, "Output"], Cell[12965, 551, 55, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[13057, 558, 110, 3, 49, "Input"], Cell[13170, 563, 65, 2, 32, "Output"], Cell[13238, 567, 54, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[13329, 574, 167, 4, 65, "Input"], Cell[13499, 580, 89, 2, 32, "Output"], Cell[13591, 584, 62, 2, 32, "Output"] }, Open ]], Cell[13668, 589, 58, 1, 37, "Text"], Cell[13729, 592, 35, 1, 56, "Input"], Cell[13767, 595, 131, 3, 40, "Text"], Cell[13901, 600, 266, 6, 54, "Text"], Cell[14170, 608, 125, 3, 39, "Text"], Cell[14298, 613, 109, 2, 37, "Text"], Cell[14410, 617, 77, 2, 33, "Input"], Cell[14490, 621, 130, 3, 49, "Input"], Cell[CellGroupData[{ Cell[14645, 628, 79, 2, 33, "Input"], Cell[14727, 632, 59, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[14823, 639, 58, 2, 33, "Input"], Cell[14884, 643, 58, 2, 31, "Output"] }, Open ]], Cell[14957, 648, 86, 1, 37, "Text"], Cell[CellGroupData[{ Cell[15068, 653, 89, 2, 33, "Input"], Cell[15160, 657, 56, 2, 32, "Output"] }, Open ]], Cell[15231, 662, 48, 1, 37, "Text"], Cell[CellGroupData[{ Cell[15304, 667, 59, 2, 33, "Input"], Cell[15366, 671, 134, 3, 37, "Message"] }, Open ]], Cell[15515, 677, 176, 3, 37, "Text"], Cell[15694, 682, 117, 2, 37, "Text"], Cell[CellGroupData[{ Cell[15836, 688, 164, 4, 65, "Input"], Cell[16003, 694, 37, 1, 36, "Output"] }, Open ]], Cell[16055, 698, 175, 4, 65, "Input"], Cell[CellGroupData[{ Cell[16255, 706, 94, 3, 49, "Input"], Cell[16352, 711, 74, 2, 32, "Output"] }, Open ]], Cell[16441, 716, 56, 1, 37, "Text"], Cell[16500, 719, 86, 2, 33, "Input"], Cell[CellGroupData[{ Cell[16611, 725, 79, 2, 33, "Input"], Cell[16693, 729, 59, 2, 32, "Output"] }, Open ]], Cell[16767, 734, 48, 1, 37, "Text"], Cell[CellGroupData[{ Cell[16840, 739, 58, 2, 33, "Input"], Cell[16901, 743, 56, 2, 32, "Output"] }, Open ]], Cell[16972, 748, 48, 1, 37, "Text"], Cell[CellGroupData[{ Cell[17045, 753, 59, 2, 33, "Input"], Cell[17107, 757, 60, 2, 32, "Output"] }, Open ]], Cell[17182, 762, 58, 1, 37, "Text"], Cell[17243, 765, 117, 3, 39, "Text"], Cell[17363, 770, 142, 5, 37, "Text"], Cell[CellGroupData[{ Cell[17530, 779, 252, 5, 81, "Input"], Cell[17785, 786, 39, 1, 36, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[17861, 792, 136, 3, 49, "Input"], Cell[18000, 797, 80, 2, 32, "Output"] }, Open ]], Cell[18095, 802, 58, 1, 37, "Text"], Cell[CellGroupData[{ Cell[18178, 807, 57, 2, 33, "Input"], Cell[18238, 811, 134, 3, 37, "Message"], Cell[18375, 816, 58, 2, 32, "Output"] }, Open ]], Cell[18448, 821, 176, 3, 37, "Text"], Cell[18627, 826, 160, 4, 37, "Text"], Cell[CellGroupData[{ Cell[18812, 834, 91, 2, 56, "Input"], Cell[18906, 838, 39, 1, 36, "Output"] }, Open ]], Cell[18960, 842, 63, 1, 36, "Input"], Cell[19026, 845, 63, 1, 36, "Input"], Cell[19092, 848, 63, 1, 36, "Input"], Cell[CellGroupData[{ Cell[19180, 853, 116, 3, 49, "Input"], Cell[19299, 858, 80, 2, 32, "Output"] }, Open ]], Cell[19394, 863, 43, 1, 37, "Text"], Cell[CellGroupData[{ Cell[19462, 868, 55, 2, 33, "Input"], Cell[19520, 872, 58, 2, 32, "Output"] }, Open ]], Cell[19593, 877, 238, 7, 71, "Text"], Cell[19834, 886, 77, 2, 37, "Input"], Cell[CellGroupData[{ Cell[19936, 892, 57, 2, 33, "Input"], Cell[19996, 896, 55, 2, 32, "Output"] }, Open ]], Cell[20066, 901, 58, 1, 37, "Text"], Cell[20127, 904, 105, 2, 39, "Text"], Cell[20235, 908, 129, 3, 37, "Text"], Cell[20367, 913, 104, 2, 33, "Input"], Cell[CellGroupData[{ Cell[20496, 919, 76, 2, 33, "Input"], Cell[20575, 923, 43, 1, 36, "Output"] }, Open ]], Cell[20633, 927, 159, 4, 37, "Text"], Cell[20795, 933, 261, 5, 97, "Input"], Cell[CellGroupData[{ Cell[21081, 942, 60, 2, 33, "Input"], Cell[21144, 946, 55, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[21236, 953, 77, 2, 33, "Input"], Cell[21316, 957, 57, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[21410, 964, 75, 2, 33, "Input"], Cell[21488, 968, 58, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[21583, 975, 75, 2, 33, "Input"], Cell[21661, 979, 59, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[21757, 986, 75, 2, 33, "Input"], Cell[21835, 990, 58, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[21930, 997, 60, 2, 33, "Input"], Cell[21993, 1001, 134, 3, 37, "Message"] }, Open ]], Cell[22142, 1007, 187, 4, 37, "Text"], Cell[22332, 1013, 164, 4, 37, "Text"], Cell[22499, 1019, 69, 2, 33, "Input"], Cell[22571, 1023, 86, 2, 33, "Input"], Cell[22660, 1027, 86, 2, 33, "Input"], Cell[22749, 1031, 86, 2, 33, "Input"], Cell[22838, 1035, 86, 2, 33, "Input"], Cell[CellGroupData[{ Cell[22949, 1041, 73, 2, 33, "Input"], Cell[23025, 1045, 57, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[23119, 1052, 71, 2, 33, "Input"], Cell[23193, 1056, 58, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[23288, 1063, 71, 2, 33, "Input"], Cell[23362, 1067, 59, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[23458, 1074, 71, 2, 33, "Input"], Cell[23532, 1078, 58, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[23627, 1085, 42, 1, 36, "Input"], Cell[23672, 1088, 42, 1, 36, "Output"] }, Open ]], Cell[23729, 1092, 180, 6, 54, "Text"], Cell[CellGroupData[{ Cell[23934, 1102, 54, 2, 37, "Input"], Cell[23991, 1106, 63, 2, 32, "Output"] }, Open ]], Cell[24069, 1111, 48, 1, 37, "Text"], Cell[24120, 1114, 51, 2, 49, "Input"], Cell[24174, 1118, 110, 2, 40, "Text"], Cell[24287, 1122, 245, 9, 56, "Text"], Cell[24535, 1133, 133, 4, 39, "Input"], Cell[CellGroupData[{ Cell[24693, 1141, 139, 3, 49, "Input"], Cell[24835, 1146, 50, 2, 22, "Print"], Cell[24888, 1150, 50, 2, 22, "Print"], Cell[24941, 1154, 50, 2, 22, "Print"], Cell[24994, 1158, 50, 2, 22, "Print"], Cell[25047, 1162, 50, 2, 22, "Print"], Cell[25100, 1166, 51, 2, 22, "Print"] }, Open ]], Cell[25166, 1171, 109, 3, 37, "Text"], Cell[25278, 1176, 170, 5, 55, "Input"], Cell[CellGroupData[{ Cell[25473, 1185, 133, 3, 49, "Input"], Cell[25609, 1190, 50, 2, 22, "Print"], Cell[25662, 1194, 50, 2, 22, "Print"], Cell[25715, 1198, 50, 2, 22, "Print"], Cell[25768, 1202, 50, 2, 22, "Print"], Cell[25821, 1206, 50, 2, 22, "Print"], Cell[25874, 1210, 51, 2, 22, "Print"] }, Open ]], Cell[25940, 1215, 66, 1, 37, "Text"], Cell[26009, 1218, 347, 12, 61, "Text"], Cell[26359, 1232, 172, 4, 65, "Input"], Cell[CellGroupData[{ Cell[26556, 1240, 62, 2, 33, "Input"], Cell[26621, 1244, 50, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[26708, 1251, 63, 2, 33, "Input"], Cell[26774, 1255, 50, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[26861, 1262, 65, 2, 33, "Input"], Cell[26929, 1266, 51, 2, 22, "Print"] }, Open ]], Cell[26995, 1271, 49, 1, 37, "Text"], Cell[CellGroupData[{ Cell[27069, 1276, 62, 2, 33, "Input"], Cell[27134, 1280, 58, 2, 32, "Output"] }, Open ]], Cell[27207, 1285, 47, 1, 37, "Text"], Cell[27257, 1288, 105, 3, 37, "Text"], Cell[27365, 1293, 194, 5, 49, "Input"], Cell[CellGroupData[{ Cell[27584, 1302, 62, 2, 33, "Input"], Cell[27649, 1306, 50, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[27736, 1313, 62, 2, 33, "Input"], Cell[27801, 1317, 50, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[27888, 1324, 63, 2, 33, "Input"], Cell[27954, 1328, 50, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[28041, 1335, 65, 2, 33, "Input"], Cell[28109, 1339, 51, 2, 22, "Print"] }, Open ]], Cell[28175, 1344, 64, 1, 37, "Text"], Cell[28242, 1347, 951, 19, 139, "Text"], Cell[29196, 1368, 388, 10, 73, "Text"], Cell[29587, 1380, 113, 3, 37, "Text"], Cell[29703, 1385, 149, 4, 50, "Input"], Cell[CellGroupData[{ Cell[29877, 1393, 59, 2, 34, "Input"], Cell[29939, 1397, 53, 2, 22, "Print"] }, Open ]], Cell[30007, 1402, 101, 3, 37, "Text"], Cell[30111, 1407, 154, 4, 49, "Input"], Cell[CellGroupData[{ Cell[30290, 1415, 63, 2, 33, "Input"], Cell[30356, 1419, 51, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[30444, 1426, 65, 2, 33, "Input"], Cell[30512, 1430, 211, 4, 52, "Print"] }, Open ]], Cell[30738, 1437, 54, 1, 37, "Text"], Cell[30795, 1440, 966, 25, 141, "Text"], Cell[31764, 1467, 233, 6, 81, "Input"], Cell[CellGroupData[{ Cell[32022, 1477, 56, 2, 33, "Input"], Cell[32081, 1481, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[32173, 1488, 56, 2, 33, "Input"], Cell[32232, 1492, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[32324, 1499, 56, 2, 33, "Input"], Cell[32383, 1503, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[32475, 1510, 56, 2, 33, "Input"], Cell[32534, 1514, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[32626, 1521, 56, 2, 33, "Input"], Cell[32685, 1525, 57, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[32779, 1532, 56, 2, 33, "Input"], Cell[32838, 1536, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[32930, 1543, 56, 2, 33, "Input"], Cell[32989, 1547, 57, 2, 22, "Print"] }, Open ]], Cell[33061, 1552, 180, 3, 37, "Text"], Cell[33244, 1557, 102, 2, 33, "Input"], Cell[CellGroupData[{ Cell[33371, 1563, 67, 2, 33, "Input"], Cell[33441, 1567, 93, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[33571, 1574, 67, 2, 33, "Input"], Cell[33641, 1578, 86, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[33764, 1585, 67, 2, 33, "Input"], Cell[33834, 1589, 93, 2, 32, "Output"] }, Open ]], Cell[33942, 1594, 369, 11, 54, "Text"], Cell[34314, 1607, 208, 6, 65, "Input"], Cell[CellGroupData[{ Cell[34547, 1617, 55, 2, 33, "Input"], Cell[34605, 1621, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[34697, 1628, 55, 2, 33, "Input"], Cell[34755, 1632, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[34847, 1639, 55, 2, 33, "Input"], Cell[34905, 1643, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[34997, 1650, 55, 2, 33, "Input"], Cell[35055, 1654, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[35147, 1661, 55, 2, 33, "Input"], Cell[35205, 1665, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[35297, 1672, 55, 2, 33, "Input"], Cell[35355, 1676, 58, 2, 32, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[35450, 1683, 55, 2, 33, "Input"], Cell[35508, 1687, 55, 2, 22, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[35600, 1694, 55, 2, 33, "Input"], Cell[35658, 1698, 58, 2, 31, "Output"] }, Open ]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)