(*********************************************************************** Mathematica-Compatible Notebook This notebook can be used on any computer system with Mathematica 4.0, MathReader 4.0, or any compatible application. The data for the notebook starts with the line containing 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[ 21052, 738]*) (*NotebookOutlinePosition[ 22279, 783]*) (* CellTagsIndexPosition[ 22122, 774]*) (*WindowFrame->Normal*) Notebook[{ Cell[CellGroupData[{ Cell["When Close Enough Is Close Enough *", "Subtitle"], Cell[TextData[{ StyleBox["* The article \"When Close Enough Is Close Enough\" is published \ by Edward R. Scheinerman on ", "SmallText"], StyleBox["American ", "SmallText", FontSlant->"Italic"], StyleBox["Mathematical", "SmallText", FontSlant->"Italic", FontVariations->{"CompatibilityType"->0}], StyleBox[" Monthly", "SmallText", FontSlant->"Italic"], StyleBox[", June-July 2000", "SmallText"] }], "Text"], Cell[CellGroupData[{ Cell["Prelude", "Section"], Cell[TextData[{ "The following equations are taken from my brother's algebra workbook. He \ always challenges me to prove these equations by ", StyleBox["Mathematica,", FontSlant->"Italic"], " otherwise to remove this software to save disk space for his PC games. \n\ (1) ", Cell[BoxData[ \(TraditionalForm\`\@\(5 - 2 \@ 6\) = \(-\@2\) + \@3\)]], "\n(2) ", Cell[BoxData[ \(TraditionalForm\`\@\(20 + 14 \@ 2\)\%3 + \@\(20 - 14 \@ 2\)\%3 = 4\)]], "\n(3) ", Cell[BoxData[ FormBox[ FormBox[\(\@\(5\ \@13 - 18\)\%3 = 1\/2\ \((\(-3\) + \@13)\)\), "TraditionalForm"], TraditionalForm]]], "\n(4) ", Cell[BoxData[ \(TraditionalForm\`\@\(\(9 - 5 \@ 3\)\/\(9 + 5 \@ 3\)\)\%3 = \(\@3 - \ 1\)\/\@\(3 + 1\)\)]], "\n(5) ", Cell[BoxData[ \(TraditionalForm\`\@\(\(3 + 2 \@ 5\%4\)\/\(3 - 2 \@ 5\%4\)\)\%4 = \ \(\@5\%4 + 1\)\/\(\@5\%4 - 1\)\)]] }], "Text", CellTags->"equations"], Cell[TextData[{ "I am very lucky that ", StyleBox["Mathematica'", FontSlant->"Italic"], "s FullSimplify[] function is powerful enough to solve these problems . But \ I am not sure whether what my brother brings next time may prove ", StyleBox["Mathematica", FontSlant->"Italic"], " a \"failure\". After reading Mr. Scheinerman's article, now, I know how \ to deal with these problems \"manually\", if FullSimplify happens to fail. If \ you have the same brother or interest as I do, please go on reading. " }], "Text"] }, Open ]], Cell[CellGroupData[{ Cell["Main Idea", "Section"], Cell[TextData[{ "The main idea of ", ButtonBox["Scheinerman's article", ButtonData:>"Edward", ButtonStyle->"Hyperlink"], " is expressed below. It is highly recommended for you to read the original \ paper if possible." }], "Text"], Cell[TextData[{ "When does ", Cell[BoxData[ \(TraditionalForm\`\[LeftBracketingBar]\[Alpha] - \[Beta]\ \[RightBracketingBar] < \[CurlyEpsilon]\)]], " imply ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \[Beta]\)]], " ? For example, if \[Alpha] and \[Beta] are integers, then if we know that \ ", Cell[BoxData[ \(TraditionalForm\`\[LeftBracketingBar]\[Alpha] - \[Beta]\ \[RightBracketingBar]\)]], " is (say) less than 0.9, then we may conclude that ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \[Beta]\)]], " . " }], "Text"], Cell[TextData[{ "Let ", Cell[BoxData[ \(TraditionalForm\`n\)]], " and ", Cell[BoxData[ \(TraditionalForm\`b\)]], " be positive integers. Let ", Cell[BoxData[ \(TraditionalForm\`M(n, \ b)\)]], " denote the set of all ", Cell[BoxData[ \(TraditionalForm\`n\[Times]n\)]], " matrices whose entries are integers bounded in absolute value by ", Cell[BoxData[ \(TraditionalForm\`b\)]], ". Let ", Cell[BoxData[ \(TraditionalForm\`\[CapitalLambda](n, \ b)\)]], " denote the set of all eigenvalues of matrices in ", Cell[BoxData[ \(TraditionalForm\`M(n, \ b)\)]], ". " }], "Text"], Cell[TextData[{ StyleBox["Proposition 1. ", FontWeight->"Bold"], StyleBox["Let ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`A \[Element] M(n, \ b)\)], FontSlant->"Italic"], StyleBox[". Then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`det(\[Lambda]\ I - A)\)], FontSlant->"Italic"], StyleBox[" is a monic, integer polynomial.", FontSlant->"Italic"] }], "Text"], Cell[TextData[{ StyleBox["Proposition 2. ", FontWeight->"Bold"], StyleBox["Let \[Alpha] be a complex number. Then \[Alpha] is an algebraic \ integer if and only if ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \ \[CapitalLambda](n, \ b)\)], FontSlant->"Italic"], StyleBox[" for some positive integers ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`n, \ b\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"] }], "Text"], Cell[TextData[{ StyleBox["Proposition 3. ", FontWeight->"Bold"], StyleBox["Suppose ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \ \[CapitalLambda](n, \ b)\)]], ". ", StyleBox["Then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[LeftBracketingBar]\[Alpha]\[RightBracketingBar] \ \[LessEqual] \ n\ b\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"] }], "Text"], Cell[TextData[{ StyleBox["Theorem 4.", FontWeight->"Bold"], StyleBox[" ", FontWeight->"Bold", FontSlant->"Italic"], StyleBox["Suppose ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`A \[Element] \ M(n, \ b)\)], FontSlant->"Italic"], StyleBox[" and \[Alpha] is a nonzero eigenvalue of ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`A\)], FontSlant->"Italic"], StyleBox[". Then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[LeftBracketingBar]\[Alpha]\[RightBracketingBar] \ \[GreaterEqual] \ \((n\ b)\)\^\(1 - n\)\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"] }], "Text", CellTags->"Theorem4"], Cell[TextData[{ "Theorem 4 is a known as a ", StyleBox["root separation theorem", FontSlant->"Italic"], "; It enables us to answer the question: When is close enough, close \ enough? Suppose we are given an algebraic expression, such as ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \@\(5 - 2 \@ 6\) + \@2 - \@3\)]], ". We need to find integers ", Cell[BoxData[ \(TraditionalForm\`n\)]], " and ", Cell[BoxData[ \(TraditionalForm\`b\)]], " such that ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \ \[CapitalLambda](n, \ b)\)]], ". Then we calculate \[Alpha] to sufficient precision to show that ", Cell[BoxData[ \(TraditionalForm\`\[LeftBracketingBar]\[Alpha]\[RightBracketingBar] < \ \ \((n\ b)\)\^\(1 - n\)\)]], ". From this, it follows that ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = 0\)]], ". " }], "Text"], Cell[TextData[{ "The issue, then, is: Given an algebraic expression \[Alpha], how do we \ find positive integers ", Cell[BoxData[ \(TraditionalForm\`n\)]], " and ", Cell[BoxData[ \(TraditionalForm\`b\)]], " such that ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \[CapitalLambda](n, \ b)\)]], "? The next result gives us tools to find ", Cell[BoxData[ \(TraditionalForm\`n\)]], " and ", Cell[BoxData[ \(TraditionalForm\`b\)]], ". " }], "Text"], Cell[TextData[{ StyleBox["Theorem 5. ", FontWeight->"Bold"], StyleBox["Let ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`n, \ n\_1, \ n\_2, \ b, \ b\_1, \ b\_2\)], FontSlant->"Italic"], StyleBox[" be positive integers.\n", FontSlant->"Italic"], "1. ", StyleBox["If \[Alpha] is a root of a monic integer polynomial of degree ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`n\)], FontSlant->"Italic"], StyleBox[" whose coefficients have absolute value no larger than b, then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \[CapitalLambda](n, \ b)\)], FontSlant->"Italic"], ".\n2. ", StyleBox["If ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`n\_1 \[LessEqual] \ n\_2\)], FontSlant->"Italic"], StyleBox[" and ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`b\_1 \[LessEqual] \ b\_2\)], FontSlant->"Italic"], StyleBox[", ", FontSlant->"Italic"], StyleBox["then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[CapitalLambda](n\_1, \ b\_1) \[SubsetEqual] \[CapitalLambda](n\_2, \ b\_2)\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"], "\n", "3. ", StyleBox["If ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \[CapitalLambda](n, \ b)\)], FontSlant->"Italic"], StyleBox[", then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\(-\[Alpha]\)\)], FontSlant->"Italic"], StyleBox[" and ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`a\&_ \[Element] \[CapitalLambda](n, \ b)\)], FontSlant->"Italic"], StyleBox[".\n", FontSlant->"Italic"], "4. ", StyleBox["If k is an integer, then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`k \[Element] \ \[CapitalLambda]( 1, \ \[LeftBracketingBar]k\[RightBracketingBar])\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"], "\n", "5. ", StyleBox["If ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \[CapitalLambda](n\_1, \ b\_1)\)], FontSlant->"Italic"], StyleBox[" and ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Beta] \[Element] \[CapitalLambda](n\_2, \ b\_2)\)], FontSlant->"Italic"], StyleBox[", then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha]\ \[Beta] \[Element] \[CapitalLambda](\(n\_1\ \) n\_2, \ b\_1\ b\_2)\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"], "\n6. ", StyleBox["If ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] \[Element] \[CapitalLambda](n\_1, \ b\_1)\)], FontSlant->"Italic"], StyleBox[" and ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Beta] \[Element] \[CapitalLambda](n\_2, \ b\_2)\)], FontSlant->"Italic"], StyleBox[". then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Alpha] + \[Beta] \[Element] \ \[CapitalLambda](\(n\_1\) n\_2, \ b\_1 + b\_2)\)], FontSlant->"Italic"], StyleBox[".\n", FontSlant->"Italic"], "7. ", StyleBox["If k is a positive integer and ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Beta]\^k \[Element] \[CapitalLambda](n, \ b)\)], FontSlant->"Italic"], StyleBox[", then ", FontSlant->"Italic"], Cell[BoxData[ \(TraditionalForm\`\[Beta] \[Element] \[CapitalLambda](n\ k, \ b)\)], FontSlant->"Italic"], StyleBox[".", FontSlant->"Italic"] }], "Text", CellTags->"Theorem5"] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ StyleBox["Mathematica", FontSlant->"Italic"], " Implementation" }], "Section"], Cell[TextData[{ "I implement the ", StyleBox["Mathematica", FontSlant->"Italic"], " function ", StyleBox["CalculateEquality[]", FontWeight->"Bold"], " to check the equality of ", ButtonBox["equations", ButtonData:>"equations", ButtonStyle->"Hyperlink"], " in the prelude. \nFirst ", StyleBox["ExpressionTo\[CapitalLambda][]", FontWeight->"Bold"], " constructs ", Cell[BoxData[ \(TraditionalForm\`\[CapitalLambda](n, \ b)\)]], " from the input expression according to ", ButtonBox["Theorem 5", ButtonData:>"Theorem5", ButtonStyle->"Hyperlink"], ". Then ", StyleBox["CalculateResult[]", FontWeight->"Bold"], " figures out whether ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = 0\)]], " according to ", ButtonBox["Theorem 4", ButtonData:>"Theorem4", ButtonStyle->"Hyperlink"], ". " }], "Text"], Cell[BoxData[ \(ExpressionTo\[CapitalLambda][expression_, \ \[CapitalLambda]_] := Module[{separate}, \[IndentingNewLine]\[CapitalLambda][a_, \ b_] + \[CapitalLambda][c_, \ d_] ^:= \[CapitalLambda][a\ c, \ b + d]; \[IndentingNewLine]\[CapitalLambda][a_, \ b_] \[CapitalLambda][c_, \ d_] ^:= \[CapitalLambda][a\ c, \ b\ d]; \[IndentingNewLine]\[CapitalLambda][a_, \ b_]\^k_ ^:= \ \[CapitalLambda][a\ k, \ b]; \[IndentingNewLine]separate[x_ + y_] := separate[x] + separate[y]; \[IndentingNewLine]separate[x_*y_] := separate[x]*separate[y]; \[IndentingNewLine]separate[ x_^y_ /; IntegerQ[1/y]] := separate[x]^\((1/y)\); \[IndentingNewLine]separate[ x_Integer] := \[CapitalLambda][1, \ Abs[x]]; \[IndentingNewLine]separate[expression]]\)], "Input"], Cell[BoxData[ \(CalculateResult[expression_, \ \[CapitalLambda]_] := Module[{threshold}, \[IndentingNewLine]Block[{$MaxExtraPrecision = 500, \ Message}, \ \[IndentingNewLine]threshold = N[\((\[CapitalLambda][\([1]\)] \[CapitalLambda][\([2]\)])\)\^\(1 \ - \[CapitalLambda][\([1]\)]\)]; \[IndentingNewLine]N[Abs[expression], \ Abs[Log[10, \ threshold]]] < threshold\[IndentingNewLine]]\[IndentingNewLine]]\)], "Input"], Cell[BoxData[ \(CalculateEquality[expression_] := Module[{\[CapitalLambda]}, \ \[IndentingNewLine]CalculateResult[ expression, \ ExpressionTo\[CapitalLambda][ expression, \ \[CapitalLambda]]]]\)], "Input"] }, Open ]], Cell[CellGroupData[{ Cell["Examples", "Section"], Cell[TextData[{ "I would use ", ButtonBox["equations", ButtonData:>"equations", ButtonStyle->"Hyperlink"], " (1) through (5) as examples to verify my function." }], "Text"], Cell[TextData[{ "1. Before using CalculateEquality[], you have to construct \[Alpha] first. \ In this case ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \@\(5 - 2 \@ 6\) + \@2 - \@3\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(\@\(5 - 2 \@ 6\) == \@3 - \@2\)], "Input"], Cell[BoxData[ \($MaxExtraPrecision::"meprec" \(\(:\)\(\ \)\) "In increasing internal precision while attempting to evaluate \!\(\@2 \ - \@3 + \@\(5 - \(\(2\\ \@6\)\)\)\), the limit $MaxExtraPrecision = \!\(100.`\ \) was reached. Increasing the value of $MaxExtraPrecision may help resolve \ the uncertainty."\)], "Message"], Cell[BoxData[ \(\@\(5 - 2\ \@6\) == \(-\@2\) + \@3\)], "Output"] }, Open ]], Cell["As I have mentioned FullSimplify[] works very well, ", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FullSimplify[\@\(5 - 2 \@ 6\)]\)], "Input"], Cell[BoxData[ \(\(-\@2\) + \@3\)], "Output"] }, Open ]], Cell["as well as my function.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(CalculateEquality[\@\(5 - 2 \@ 6\) + \@2 - \@3]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "2. ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \@\(20 + 14 \@ 2\)\%3 + \@\(20 - 14 \@ \ 2\)\%3 - 4\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"FullSimplify", "[", FormBox[\(\@\(20 + 14 \@ 2\)\%3 + \@\(20 - 14 \@ 2\)\%3\), "TraditionalForm"], "]"}]], "Input"], Cell[BoxData[ \(4\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(CalculateEquality[\@\(20 + 14 \@ 2\)\%3 + \@\(20 - 14 \@ 2\)\%3 - 4]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "3. ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = 2 \@\( 5\ \@13 - 18\)\%3 - \ \((\(-3\) + \@13)\)\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FullSimplify[\@\(5\ \@13 - 18\)\%3]\)], "Input"], Cell[BoxData[ \(1\/2\ \((\(-3\) + \@13)\)\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(CalculateEquality[ 2 \@\( 5\ \@13 - 18\)\%3 - \((\(-3\) + \@13)\)]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ StyleBox["Important ", FontWeight->"Bold"], "In this case \[Alpha] is not ", Cell[BoxData[ \(TraditionalForm\`\@\(5\ \@13 - 18\)\%3 - 1\/2\ \((\(-3\) + \@13)\)\)]], " , you have to eliminate ", Cell[BoxData[ \(TraditionalForm\`1\/2\)]], " by double both sides of the equation. It does no harm for a equation if \ both sides are equal. This principle holds true for the rest of the \ problems." }], "Text"], Cell[TextData[{ "4. ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \(\@\(9 - 5 \@ 3\)\%3\) \((\@3 + 1)\) - \((\@3 - 1)\) \@\(9 + 5 \@ 3\)\%3\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(FullSimplify[\((\(9 - 5 \@ 3\)\/\(9 + 5 \@ 3\))\)\^\(1/3\)]\)], "Input"], Cell[BoxData[ \(2 - \@3\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(CalculateEquality[\(\@\(9 - 5 \@ 3\)\%3\) \((\@3 + 1)\) - \((\@3 - 1)\) \@\(9 + 5 \@ 3\)\%3]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "5. ", Cell[BoxData[ \(TraditionalForm\`\[Alpha] = \(\@\(3 + 2 \@ 5\%4\)\%4\) \((\@5\%4 - 1)\) - \((\@5\%4 + 1)\) \@\(3 - 2 \@ 5\%4\)\%4\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \($MaxExtraPrecision = 500\)], "Input"], Cell[BoxData[ \(500\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(FullSimplify[\@\(\(3 + 2 \@ 5\%4\)\/\(3 - 2 \@ 5\%4\)\)\%4 == \(\@5\%4 \ + 1\)\/\(\@5\%4 - 1\)]\)], "Input"], Cell[BoxData[ \($MaxExtraPrecision::"meprec" \(\(:\)\(\ \)\) "In increasing internal precision while attempting to evaluate \ \!\(\(\(-\(\(\(1 + 5\^\(1/4\)\)\/\(\(\(-1\)\) + 5\^\(1/4\)\)\)\)\)\) + \((\(\ \[LeftSkeleton] 1 \[RightSkeleton]\))\)\^\(1/4\)\), the limit \ $MaxExtraPrecision = \!\(500.`\) was reached. Increasing the value of \ $MaxExtraPrecision may help resolve the uncertainty."\)], "Message"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ \(CalculateEquality[\(\@\(3 + 2 \@ 5\%4\)\%4\) \((\@5\%4 - 1)\) - \((\@5\%4 + 1)\) \@\(3 - 2 \@ 5\%4\)\%4]\)], "Input"], Cell[BoxData[ \(True\)], "Output"] }, Open ]], Cell[TextData[{ "6. This last example shows that CalculateEquality[] does not always return \ True. If there is little difference, it can be detected. Say ", Cell[BoxData[ \(TraditionalForm\`\@7502 + \@121393 + \@196418 + \@317811 \[NotEqual] \ \@514229 + \@832040\)]] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ \(CalculateEquality[\@7502 + \@121393 + \@196418 + \@317811 - \@514229 - \ \@832040]\)], "Input"], Cell[BoxData[ \(False\)], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Further Reading", "Section"], Cell[TextData[{ "In Edward R. Scheinerman's paper, he also presents one more calculation \ efficient way to construct ", Cell[BoxData[ \(TraditionalForm\`\[CapitalLambda](n, \ b)\)]], ". And a more complicated problem is solved as example. So reading his \ original paper is recommended. \nEdward R. Scheinerman, ", StyleBox["When Close Enough Is Close Enough, ", FontSlant->"Italic"], "American ", StyleBox["Mathematical", FontVariations->{"CompatibilityType"->0}], " Monthly, June-July 2000" }], "Text", CellTags->"Edward"] }, Open ]] }, Open ]] }, FrontEndVersion->"4.0 for Microsoft Windows", ScreenRectangle->{{0, 800}, {0, 512}}, ScreenStyleEnvironment->"Working", WindowToolbars->{}, WindowSize->{792, 480}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, Magnification->1.5, StyleDefinitions -> "Default.nb" ] (*********************************************************************** 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->{ "equations"->{ Cell[2284, 70, 947, 27, 311, "Text", CellTags->"equations"]}, "Theorem4"->{ Cell[6728, 223, 719, 25, 48, "Text", CellTags->"Theorem4"]}, "Theorem5"->{ Cell[8856, 297, 3717, 127, 255, "Text", CellTags->"Theorem5"]}, "Edward"->{ Cell[20469, 720, 555, 14, 151, "Text", CellTags->"Edward"]} } *) (*CellTagsIndex CellTagsIndex->{ {"equations", 21763, 758}, {"Theorem4", 21851, 761}, {"Theorem5", 21938, 764}, {"Edward", 22026, 767} } *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[1739, 51, 55, 0, 95, "Subtitle"], Cell[1797, 53, 433, 11, 65, "Text"], Cell[CellGroupData[{ Cell[2255, 68, 26, 0, 79, "Section"], Cell[2284, 70, 947, 27, 311, "Text", CellTags->"equations"], Cell[3234, 99, 537, 11, 151, "Text"] }, Open ]], Cell[CellGroupData[{ Cell[3808, 115, 28, 0, 79, "Section"], Cell[3839, 117, 244, 7, 73, "Text"], Cell[4086, 126, 569, 17, 73, "Text"], Cell[4658, 145, 644, 23, 99, "Text"], Cell[5305, 170, 434, 15, 47, "Text"], Cell[5742, 187, 518, 16, 73, "Text"], Cell[6263, 205, 462, 16, 47, "Text"], Cell[6728, 223, 719, 25, 48, "Text", CellTags->"Theorem4"], Cell[7450, 250, 895, 25, 139, "Text"], Cell[8348, 277, 505, 18, 73, "Text"], Cell[8856, 297, 3717, 127, 255, "Text", CellTags->"Theorem5"] }, Open ]], Cell[CellGroupData[{ Cell[12610, 429, 102, 4, 79, "Section"], Cell[12715, 435, 880, 32, 125, "Text"], Cell[13598, 469, 880, 13, 276, "Input"], Cell[14481, 484, 483, 7, 198, "Input"], Cell[14967, 493, 249, 5, 94, "Input"] }, Open ]], Cell[CellGroupData[{ Cell[15253, 503, 27, 0, 79, "Section"], Cell[15283, 505, 186, 6, 47, "Text"], Cell[15472, 513, 208, 5, 86, "Text"], Cell[CellGroupData[{ Cell[15705, 522, 62, 1, 56, "Input"], Cell[15770, 525, 334, 5, 146, "Message"], Cell[16107, 532, 68, 1, 52, "Output"] }, Open ]], Cell[16190, 536, 68, 0, 47, "Text"], Cell[CellGroupData[{ Cell[16283, 540, 63, 1, 58, "Input"], Cell[16349, 543, 48, 1, 44, "Output"] }, Open ]], Cell[16412, 547, 39, 0, 47, "Text"], Cell[CellGroupData[{ Cell[16476, 551, 80, 1, 58, "Input"], Cell[16559, 554, 38, 1, 41, "Output"] }, Open ]], Cell[16612, 558, 144, 5, 54, "Text"], Cell[CellGroupData[{ Cell[16781, 567, 157, 3, 58, "Input"], Cell[16941, 572, 35, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[17013, 578, 110, 2, 58, "Input"], Cell[17126, 582, 38, 1, 41, "Output"] }, Open ]], Cell[17179, 586, 150, 5, 54, "Text"], Cell[CellGroupData[{ Cell[17354, 595, 68, 1, 58, "Input"], Cell[17425, 598, 59, 1, 57, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[17521, 604, 105, 2, 62, "Input"], Cell[17629, 608, 38, 1, 41, "Output"] }, Open ]], Cell[17682, 612, 459, 13, 111, "Text"], Cell[18144, 627, 183, 5, 54, "Text"], Cell[CellGroupData[{ Cell[18352, 636, 92, 1, 84, "Input"], Cell[18447, 639, 41, 1, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[18525, 645, 140, 2, 62, "Input"], Cell[18668, 649, 38, 1, 41, "Output"] }, Open ]], Cell[18721, 653, 195, 5, 61, "Text"], Cell[CellGroupData[{ Cell[18941, 662, 57, 1, 42, "Input"], Cell[19001, 665, 37, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[19075, 671, 128, 2, 99, "Input"], Cell[19206, 675, 419, 6, 160, "Message"], Cell[19628, 683, 38, 1, 41, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[19703, 689, 152, 2, 76, "Input"], Cell[19858, 693, 38, 1, 41, "Output"] }, Open ]], Cell[19911, 697, 290, 6, 95, "Text"], Cell[CellGroupData[{ Cell[20226, 707, 115, 2, 78, "Input"], Cell[20344, 711, 39, 1, 41, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[20432, 718, 34, 0, 79, "Section"], Cell[20469, 720, 555, 14, 151, "Text", CellTags->"Edward"] }, Open ]] }, Open ]] } ] *) (*********************************************************************** End of Mathematica Notebook file. ***********************************************************************)