{
"hash": "d9d716bfdcb127d0258308c87b87624c",
"result": {
"engine": "jupyter",
"markdown": "---\ntitle: \"Polynomial Counting 1: A primer\"\ndescription: |\n An exploration into generalizations of positional number systems to irrational numbers.\nformat:\n html:\n html-math-method: katex\njupyter: python3\ndate: \"2021-02-03\"\ndate-modified: \"2025-02-07\"\ncategories:\n - algebra\n - phinary\n - python\n---\n\nThe single most common method of representing numbers in the modern world is in *positional numeral system*.\nDespite being taught in early grade school, it is the result of millennia of mathematical thought.\n\nThe decimal system we use today assigns integers to *expansions* consisting several symbols called\n *numerals* next to each other.\nEach numeral is positioned at a *place value*, which has a value ten times greater than its neighbor\n to the right and a tenth as much of its neighbor to the left.\nDue to place values sharing a constant ratio of ten, the system is called *decimal*.\n\n$$\n\\begin{align*}\n \\scriptsize 10^2 && \\scriptsize 10^1 && \\scriptsize 10^0 && \\scriptsize 10^{-1} &\n \\quad \\} \\quad \\text{Place values} \\\\\n 4 && 3 && 2 .&& 1 &\n \\quad \\} \\quad \\text {Numerals: 1, 2, 3, 4} \\\\\n \\hline\n\\end{align*} \\\\\n\\text{Four hundred, thirty-two, and one tenth}\n$$\n\n\n\nOn the difference between \"1, 2, 3, and 4\" and \"one, two, three, and four\"\n
\nFor clarity, I distinguish between numerals, such as \"1\", \"2\", \"3\", and \"4\", and numbers,\n such as \"one\", \"two\", \"three\", and \"four\".\nWhen discussing different systems from decimal, it's easy to write things like \"base 2\" rather than \"base two\".\nThe former leverages a distinguished symbol for the number two existing, which while at times useful,\n leads to confusion between the symbol and the underlying number.\n\n\nWhen referring to its value, I'll tend to write out a number's English name, rather than\n how it would be written in decimal.\nConversely, when I want to refer to the symbols themselves, I will enclose them in quotes;\n for example, \"0\" refers to the symbol 0.\n \n\n\nA Brief History\n---------------\n\nAs mentioned, this practice is millenia old.\n\nArguably, the oldest common ancestor was used by the Babylonians (circa eighteenth century BC),\n who instead used a sexagesimal (base sixty) system.\nIt lacked a \"decimal point\" (more properly a sexagesimal point, *fractional separator*, or *radix point*).\nThis meant that a representation could equally as well refer to thirty (30) or one-half (1/2 = 30×60^-1^),\n or one hundred and eight thousand (108000 = 30×60^2^ ) in the same way we might consider\n five (5), one-half (1/2 = 5×10^-1^), and five-hundred (500 = 5×10^2^) to be similar in decimal.\nIt also lacked a \"0\" symbol to represent an empty place value; instead, empty place values were simply skipped.\nThus, the onus was on the arithmetician to properly align digits, maintain spacing, and correctly interpret results.\nDespite these limitations, it was robust enough to develop basic trigonometry and\n [approximate the square root of 2](https://en.wikipedia.org/wiki/YBC_7289).\n\nLater, Indian mathematics developed its own place value system -- this time in the familiar base ten --\n at least by the time of Aryabhata (4th century AD).\nIt introduced the empty \"0\" symbol that the Babylonian system lacked.\nEventually, this system made its way to Europe by means of the Arabs.\nThe 16th century Dutch engineer Simon Stevin was one of the first individuals to introduce a \"decimal point\".\nThough modern notation differs slightly from his, it introduced (or perhaps re-introduced) a means of adding\n and multiplying numbers between integers.\nNeedless to say, it has become so popular as to become one of the most predominant ways to express numbers.\n\nLater thought realized bases other than ten were possible; for example,\n [binary](https://en.wikipedia.org/wiki/Binary_number) (base two) due in part to Leibniz.\nStranger yet are non-integral bases, for example the complex base $2i$ due to Knuth.\nHowever, I find bases which rely on *irrational* numbers to be the most interesting.\n\nStaying Golden\n--------------\n\nThe [*golden ratio*](https://en.wikipedia.org/wiki/Golden_ratio), a number with many apocryphal attributions,\n was a favorite of Greek mathematics.\nAs such, it was originally recognized in the context of geometry, long before the development of algebra.\nIt is constructed by dividing a line segment such that the ratio between the longer and shorter sub-segments\n is the same as the ratio between original segment and the longer sub-segment.\n\nPhrased in modern algebraic language, the golden ratio *φ* is the unique positive root of the polynomial\n $x^2 - x - 1$, expressed as $\\frac{1 + \\sqrt 5}{2} \\approx 1.618…$.\nDespite its name, this number is ir**ratio**nal, since it cannot be represented as a **ratio** of integers.\nFurthermore, raising it to any integral power does not produce an integer (left as an exercise to the reader).\n\nIt might seem inconceivable that one may obtain an integer (other than zero or one) by summing powers of *φ*.\nHowever, base *φ* (also called phinary) does in fact exist.\nHere is a list of (canonical) expansions up to 10\n\n:::: {.row .text-center width=\"50%\"}\n::: {#canonical-phinary-table .column}\n\n| *n* (Decimal) | *n* (Phinary) |\n|--------------:|:-------------:|\n| 0 | 0 |\n| 1 | 1 |\n| 2 | 10.01 |\n| 3 | 100.01 |\n| 4 | 101.01 |\n| 5 | 1000.1001 |\n| 6 | 1010.0001 |\n| 7 | 10000.0001 |\n| 8 | 10001.0001 |\n| 9 | 10010.0101 |\n| 10 | 10100.0101 |\n\n:::\n::::\n\nWe can obtain the entries on this list in two ways: naively (and imprecisely), or directly.\n\n\n### The Naive Approach\n\nIn the most general sense, an expansion is just a sequence of integers, or digits.\nWe can recover the value by summing the products of the integers by their place values.\nFor example, a decimal number has the form\n\n$$\n\\begin{align*}\n x &= ({a_n a_{n-1}... a_1 a_0})_{10} \\\\\n &= a_0 \\cdot 10^0 + a_1 \\cdot 10^1 + ... + a_{n-1} \\cdot 10^{n-1} + a_n \\cdot 10^{n}\n\\end{align*}\n$$\n\nwhere the $a_i$ are digits of the number.\nNegative indices (corresponding to fractional values) may also be used, but have been omitted for horizontal space.\n\nThis equivalence means that we can convert to and from a particular base.\nNaively, we might use the following \"greedy\" algorithm to derive the base-$b$ expansion\n(also called a [β-expansion](https://en.wikipedia.org/wiki/Non-integer_base_of_numeration)) of a number $x$:\n\n::: {#a575e172 .cell execution_count=1}\n``` {.python .cell-code}\nfrom math import log, floor\n\ndef beta_expand_greedy(\n x: float,\n b: float,\n tol: float = 0.0001\n) -> dict[int, int]:\n ret = {}\n\n while x > tol: # While we're not precise enough\n p = int(floor(log(x, b))) # Get the place value p\n digit, new_x = divmod(x, b**p) # Get the quotient and remainder from\n # dividing by this place value\n ret[p] = int(digit) # Place the digit in place value p\n x = new_x # Update the value of x and repeat\n\n return ret\n```\n:::\n\n\nAs a demonstration, this algorithm, when run on a decimal number gives the same value:\n\n::: {#98c58561 .cell execution_count=2}\n``` {.python .cell-code code-fold=\"true\"}\ndef as_digits(digits: dict[int, int]) -> str:\n '''Convert a dictionary from `beta_expand_greedy` to a sequence of digits'''\n return \"\".join(\n str(digits.get(i, 0)) + (\".\" if i == 0 else \"\")\n for i in range(max(digits.keys()), min(digits.keys()) - 1, -1)\n )\n\none_thousand_two_hundred_thirty_four = 1234\nprint(\n \"one_thousand_two_hundred_thirty_four =\",\n as_digits(beta_expand_greedy(one_thousand_two_hundred_thirty_four, 10)),\n \"in base 10\"\n)\n```\n\n::: {.cell-output .cell-output-stdout}\n```\none_thousand_two_hundred_thirty_four = 1234. in base 10\n```\n:::\n:::\n\n\nThere are three problems with this.\n\n1. It is inexact. `x` gets smaller, but we can only ever approximate the result.\n For numbers smaller than the tolerance, it is outright wrong.\n Due to the nature of the approximation, the result can also appear in an unexpected form:\n\n\n ::: {#d8fffcb3 .cell execution_count=3}\n ``` {.python .cell-code code-fold=\"true\"}\n phi = (5**0.5 + 1) / 2\n print(\"Expected:\", \"10100.0101\")\n print(\"Got: \", as_digits(beta_expand_greedy(10, phi)))\n ```\n \n ::: {.cell-output .cell-output-stdout}\n ```\n Expected: 10100.0101\n Got: 10100.0100101010101010101\n ```\n :::\n :::\n \n \n2. It relies on a transcendental function, the logarithm.\n - One may approximate this by repeated division, but in general, it is practical to use a\n floating-point function.\n\n3. The arguments `x` and `b` are given as floating-point numbers.\n However, if `p` is always positive, we can instead use integer arithmetic, which is more precise.\n Generally, we need some form of fractional arithmetic.\n\nModern FPUs are make the last two items somewhat trivial, but they necessarily make the calculation approximate.\nFortunately for phinary, there is a direct method which remedies all these issues and produces exact\n results without floating-point operations.\n\n\n### Deriving Expansions\n\nTake another look at the canonical representations [above](#canonical-phinary-table).\nMuch like binary, phinary only requires the digits 0 and 1.\nAnother slightly less obvious fact is that the string \"11\" never occurs in the expansion.\nThis is because we can rewrite the polynomial as the following\n\n$$\n\\begin{gather*}\n x - 2 = 0 \\implies\n \\left. \\begin{align*}\n x &= 2 \\\\\n 10_x &= 02\n \\end{align*} \\right\\}\n & \\text{Binary}\n \\\\ \\\\\n \\varphi^2 - \\varphi - 1 = 0 \\implies\n \\left. \\begin{align*}\n \\varphi^2 &= \\varphi + 1 \\\\\n 100_\\varphi &= 11_\\varphi\n \\end{align*} \\right \\}\n & \\text{Phinary}\n\\end{gather*}\n$$\n\nThis shows a connection between polynomials and positional notation which is not at all obvious.\nThe second lines leverage positional notation in lieu of a symbol; their interpretation is\n exactly the same as the first line.\n\nWhen we multiply or divide by ten in decimal (or two in binary), we shift the digits left or right.\nLikewise, we may multiply or divide by *φ* on either side of the equation.\nThus, it is also true that\n\n$$\n\\begin{gather*}\n \\left. \\begin{align*}\n 2^2 &= 2\\cdot 2 &&\\iff&\n 100_2 &= 20_2 \\\\\n 1 &= 2\\cdot 2^{-1} &&\\iff&\n 1_2 &= 0.2_2\n \\end{align*}\\right \\}\n & \\text{Binary}\n \\\\ \\\\\n \\left. \\begin{align*}\n \\varphi^3 &= \\varphi^2 + \\varphi &&\\iff&\n 1000_\\varphi &= 110_\\varphi \\\\\n \\varphi &= 1 + \\frac 1 \\varphi &&\\iff&\n 10_\\varphi &= 1.1_\\varphi\n \\end{align*}\\right \\}\n & \\text{Phinary}\n\\end{gather*}\n$$\n\nSince this relationship holds for any adjacent place values, it is analogous to \"carrying\" in base ten.\nIn decimal, we care if a single place value exceeds ten and increment the next place value\n (once for each multiple of ten).\nIn phinary, we care if there are two \"1\"s in adjacent place values, and can remove such occurrences\n by doing the same.\n\nMore generally, we can look at expansions not restricted to the symbols \"0\" and \"1\" and do similarly\n\n$$\n\\begin{align*}\n 32_\\varphi &= 121_\\varphi \\\\\n 0.61_\\varphi &= 1.5_\\varphi\n\\end{align*}\n$$\n\nThinking a little more cleverly, we can decompose 2 as\n\n$$\n\\begin{align*}\n \\textcolor{red}{2} = 1.\\textcolor{red}{11}_\\varphi =\n \\textcolor{blue}{1.1}1_\\varphi &= \\textcolor{blue}{1}0.01_\\varphi \\\\\n 2 &= \\varphi + \\varphi^{-2}\n\\end{align*}\n$$\n\nWith this rule in tow, we can finally start counting in phinary.\nWe count in base ten by incrementing the ones digit (or 0th place value) and carrying tens to higher digits.\nIn phinary, we have two carry rules, which we repeat until we cannot:\n\n1. Express \"011\" as \"100\"\n2. Express \"0200\" as \"1001\"\n\nAggressively applying these rules results in the same expansion as found in the\n [canonical table](#canonical-phinary-table).\nFor example, the expansion of three is clearly\n\n$$\n3 = 2 + 1 = 10.01_\\varphi + 1 = \\textcolor{red}{11}.01 = \\textcolor{red}{1}00.01\n$$\n\nBoth of these rules hold for larger digits as well.\nFor example, we can expand the quantity $4\\varphi + 3$ as:\n\n$$\n\\stackrel{\\text{Carry 033 = 300}}{\n 00\\textcolor{red}{043}_\\varphi =\n 00\\textcolor{red}{310}\n}_\\varphi =\n\\stackrel{\\text{Carry 0200 = 1001}}{\n 0\\textcolor{blue}{0310}_\\varphi =\n 0\\textcolor{blue}{1111}\n}_\\varphi =\n0\\textcolor{green}{11}\\textcolor{orange}{11}_\\varphi =\n\\textcolor{green}{1}0\\textcolor{orange}{1}00_\\varphi\n$$\n\nChecking approximately, this identity appears to be true:\n\n::: {#a4b9b268 .cell execution_count=4}\n``` {.python .cell-code}\nprint(phi**4 + phi**2 - (4 * phi + 3))\n```\n\n::: {.cell-output .cell-output-stdout}\n```\n0.0\n```\n:::\n:::\n\n\n### The Other Root\n\nAs a quadratic, the polynomial $x^2 - x - 1$ has two roots: $\\varphi$ and its conjugate\n $\\varphi^* = -\\varphi^{-1}$.\nThis implies that each phinary string can be interpreted by either root.\n\n$$\n\\begin{align*}\n 5 = 1000.1001_{\\varphi_{\\phantom{*}}}\n &= \\varphi^3 + \\varphi^{-1} + \\varphi^{-4} \\\\\n \\phantom{5} = 1000.1001_{\\varphi^*}\n &= ((-\\varphi)^{-1})^3 + ((-\\varphi)^{-1})^{-1} + ((-\\varphi)^{-1})^{-4} \\\\\n &= \\varphi^{4} -\\ \\varphi -\\ \\varphi^{-3} \\\\\n &= 10000_\\varphi -\\ 10.001_\\varphi\n\\end{align*}\n$$\n\nTo make the calculation easier, we can un-expand the postive part to make cancellation with the\n negative part easier.\nThis is the same as borrowing when doing typical subtraction.\n\n$$\n\\begin{align*}\n 10000_\\varphi &= 1100_\\varphi = 1011_\\varphi = 1010.11_\\varphi \\\\\n &= 1010.1011_\\varphi\n\\end{align*}\n$$\n\nProceeding onwards,\n\n$$\n\\begin{align*}\n 1000.1001_{\\varphi^*} &= 10000_\\varphi -\\ 10.001_\\varphi \\\\\n &= 1010.1011_\\varphi -\\ 10.001_\\varphi \\\\\n &= 1000.1001_\\varphi\n\\end{align*}\n$$\n\nAnd we breathe a sigh of relief since the expansion we get is the same we started with.\nThis is perhaps one of the reasons phinary expansions seem so verbose.\n\nAs an aside, since $-\\varphi^{-1}$ is negative, its powers alternate between positive and negative.\nAlso, since its magnitude is less than one, place values to the right of the radix point are larger than one,\n the inverse of what one is used to with base ten.\n\n\nFibonacci and Zeckendorf\n------------------------\n\nInstead of assigning place values to powers of the base, we can instead imagine a situation where the\n place values correspond to the values of a sequence, in particular the Fibonacci numbers.\nPhi also turns up when discussing this sequence, or more generally, sequences generated by the recurrence\n $a_{n+1} = a_n + a_{n-1}$.\nThis bears a striking resemblance the the polynomial mentioned above, with cursory examination by\n [generating functions](https://en.wikipedia.org/wiki/Generating_function) revealing the connection.\n\nFibonacci numbers are all integers, so sums of them can only express integers.\nIf we assign place values to unique Fibonacci numbers (one is \"1\" and not \"10\"), we can imagine a\n similar algorithm to the one presented earlier.\nThat is, we can derive an expansion for a number by subtracting out the largest Fibonacci number less than it\n (possibly multiple times) and repeating with the remainder.\nExpansions of the integers up to 10 are:\n\n:::: {.row .text-center width=\"50%\"}\n::: {#canonical-zeckendorf-table .column}\n\n| *n* (Decimal) | *n* (Fibonacci) |\n|--------------:|----------------:|\n| 0 | 0 |\n| 1 | 1 |\n| 2 | 10 |\n| 3 | 100 |\n| 4 | 101 |\n| 5 | 1000 |\n| 6 | 1001 |\n| 7 | 1010 |\n| 8 | 10000 |\n| 9 | 10001 |\n| 10 | 10010 |\n\n:::\n::::\n\nThese are known as *Zeckendorf expansions*.\n\nThese representations seem very similar to the phinary strings above.\nNot only that, but this sequence is also the sequence of all binary strings that do not contain two consecutive\n \"1\"s ([OEIS A014417](https://oeis.org/A014417)).\nThis representation is exactly as arbitrary as preferring the greedy phinary representation;\ninstead, this is the \"greedy series expansion\" of an integer in the Fibonacci numbers.\n\n\n### Expanding Two, Again\n\nBecause of the relationship between phi and the Fibonacci numbers, we have the familiar relation\n\n$$\n\\begin{align*}\n 2 F_n &= F_{n+1} + F_{n-2} \\\\\n 0200_\\text{Zeck} &= 1001_\\text{Zeck}\n\\end{align*}\n$$\n\nFor small $n$, this identity seems wrong, but it can in fact be justified:\n\n$$\n\\begin{array}{c|ccccc:cc}\n & 8 & 5 & 3 & 2 & 1 & 1 & \\sim \\\\ \\hline\n 2 & & & & & 2 & & \\\\\n & & & & 1 & 0 & 0 & 1 \\\\\n & & & & 1 & 0 \\\\ \\hline\n 4 & & & & 2 & 0 & & \\\\\n & & & 1 & 0 & 0 & 1 & \\\\\n & & & 1 & 0 & 1\n\\end{array}\n$$\n\nIn the expansion of 2, the rightmost \"1\" seems to underflow.\nHowever, in the expansion of 4, we must consider the second \"1\" in the negative first place value.\nIt acts as a sort of temporary storage which is immediately transferred into place value zero.\n\n\nSynthesis: Generalizing Phinary\n-------------------------------\n\nBy starting with the golden ratio base, many natural questions arise.\nDoes this approach work with other quadratic roots?\nAre there any restrictions on the coefficients (or sequences)?\nDoes it work with any polynomial with positive roots?\nAre only monic polynomials allowed to be used?\nWhat digits are minimally necessary to represent any integer?\nHow \"canonical\" can \"canonical\" really be?\n\nRather than answering these questions or giving proofs, I think it's best to lay some ground rules.\nUsing the above examples, I define two genera of positional number systems:\n\n- A *fractional* number system is one where the place values are determined by the powers of the\n root of a polynomial with integer coefficients.\n The \"fraction\" in fractional comes allowing negative powers of our base.\n Therefore, we can represent rational numbers and use a fractional separator.\n - Naturally, the decimal system currently in use fits in here, corresponding to the polynomial $x - 10$.\n - Likewise, phinary corresponds to the polynomial $x^2 - x - 1$.\n\n- An *integral* number system is one where the place values are given by a strictly increasing integral sequence.\n It can express only integers and there is no fractional separator.\n\n - As an example, the geometric series produced from an integer (e.g.: 1, 2, 4, 8, …), corresponds to\n a typical system without support for fractions.\n\n - The already-discussed the Fibonacci base fits here as well.\n In fact, since linear recurrence relations correspond to polynomials, this extends to a correspondence\n between integral and fractional systems.\n\n - Other sequences are also valid, like the square numbers.\n In the \"square number base\" we know the digital root (of canonical expansions) never exceeds 4 due to\n [Lagrange's four-square theorem](https://en.wikipedia.org/wiki/Lagrange%27s_four-square_theorem).\n\n\n### Alphabets\n\nA positional number system not only has place values, but a *numeral alphabet*.\nIn standard decimal, there are ten distinct symbols including \"0\": {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.\nThe choice of symbols is arbitrary\n (it can vary\n [with](https://en.wikipedia.org/wiki/Eastern_Arabic_numerals)\n [language](https://en.wikipedia.org/wiki/Chinese_numerals)),\n but each has a *weight*, the integer quantity assigned to them.\nIn the modern Western world,\n [Hindu-Arabic numerals](https://en.wikipedia.org/wiki/Hindu%E2%80%93Arabic_numeral_system) are standard\n and distinct from alphabetic characters, so the distinction between \"weight\" and \"symbol\" can be ignored\n by using them conventionally for the first ten whole numbers.\nSubsets of this alphabet include the binary alphabet, {0, 1}, and the ternary alphabet, {0, 1, 2}.\n\nA *minimal alphabet* for a number system is an alphabet of the smallest size which can still represent\n every integer.\nIt is most convenient to consider an alphabet of integers from 0 up to a particular value,\n even though it may be true that minimal alphabets might exist which \"skip\" over certain weights.\n\nIt is often useful to be able to borrow a symbol of a certain weight, even if it would not be present\n in a minimal alphabet (for example, using \"2\" when it is convenient to do so, as above).\nIn this manner, it is also possible to interpret the representation of a number in one base\n in another arbitrary base.\n\n*Balanced alphabets* also exist, which contain negative numeral weights.\nFor example, the balanced ternary alphabet consists of the weights of {-1, 0, 1}.\nPowers of 3 always determine the place values in ternary, but expansions change to suit the alphabet.\nTo conserve horizontal space, I'll use the symbols $\\bar{1}$ and \"T\" to signify -1.\n\n\n### Canonicity\n\nFinding the *canonical expansion* of a number should be as simple as incrementing the 0th place value\n and aggressively applying the carry.\nFor fractional systems, this amounts to adding one the 1's digit, and for integral ones,\n adding it to the rightmost.\n\nNote that irrational systems have at least *two* carry rules.\nIn phinary, these are the \"011\" = \"100\" rule, and the \"0200\" = \"1001\" rule.\n\n\n### Questions About the Above Rules\n\nOne may take several exceptions with these definitions and the restrictions they impose,\n to which I will offer a brief dismissal:\n\n\n\n\n#### Why limit alphabet weights to integers?\n
\n\nIntegers and integer arithmetic are fundamental systems with very straightforward addition and multiplication.\nAdding more complex rules by introducing fractions or polynomial roots creates unnecessary complications.\n \n\n\n\n\n#### Why prefer weights of integers from 0 to n?\n
\n\nAlphabets are best kept inductive -- either a weight is the largest possible or its successor is also a weight.\nIf we start with a negative weight, this includes balanced alphabets.\n\nUnbounded alphabets have their uses.\nFor example, we might hold off from carrying until necessary, or prefer expansions like\n $21_\\varphi = 1 + 2\\varphi$ to $21_\\varphi = 1000_\\varphi = \\varphi^4$.\n\nThe inductive base case, the binary alphabet, is fairly important for two reasons:\n\n- Expansions can always be padded with 0s to produce other valid expansions.\n- If \"1\" does not exist in the alphabet, it should be derivable in some way from other symbols like \"2\" and \"3\".\n \n\n\n\n\n#### Do we prefer monic polynomials?\n
\n\nThe recurrence relation corresponding to a non-monic polynomials must cycle mod the leading term.\nThe simplest (only?) examples are just geometric series; in other words, normal integral systems.\n\nFor example, the powers of 3 satisfy $2a_{n+1} = 5a_n + 3a_{n-1}$. But the RHS simplifies:\n\n$$\n2a_{n+1} = 5a_n + 3a_{n-1} = 5a_n + a_n = 6a_n \\\\\na_{n+1} = 3a_n\n$$\n\nIncidentally, 3 is a root of $2x^2 - 5x - 3$.\nFermat's little theorem is likely a component in proving this generally.\n \n\n\n\n\n#### Why exclude transcendentals from fractional systems?\n
\n\nConvergent series like $\\exp{x}$ require coefficients which shrink quickly, far below a magnitude of 1.\nThis conflicts with our expectation of counting polynomials to be integral polynomials.\nThis is disappointing, since relatively simple transcendental like $e$\n (simple in terms of continued fractions, combinatorics, etc) relies on a series in rationals.\n \n\n\nClosing\n-------\n\nWith these restrictions in mind, I wrote a simple Haskell library to help explore these systems\n (found [here](https://github.com/queue-miscreant/GenBase)).\nThe [next post](../2) will discuss quadratic polynomials with larger coefficients than 1, and problems\n not discussed with higher expansions.\n\n",
"supporting": [
"index_files"
],
"filters": [],
"includes": {}
}
}