PlanetMath (more info)
 Math for the people, by the people. Sponsor PlanetMath
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
Owner confidence rating: Very high Entry average rating: Very high
[parent] expressing fractions in factorial base (Algorithm)

Given a fraction $p/q$ one may re-express it in factorial base as follows. For simplicity, we assume that the fraction is already written in lowest terms, i.e. that $p$ and $q$ have no common factor. As in the parent entry, we assume the both $p$ and $q$ are positive and that $p < q$ so our fraction is less than 1.

To begin, determine the smallest integer $d(q)$ such that $q$ divides $d(q)!$

Rewrite the fraction with $d(q)!$ as denominator: $$ {p \over q} = {p \cdot d(q)!/q \over d(q)!} $$

Successively split off terms as follows: given a fraction $m/n!$ write $m = k \cdot n + r$ , where $r < n$ and then write $$ {m \over n!} := {k \over (n-1)!} + {r \over n!} $$ Initially, we choose $m = p \cdot d(q)!/q$ and $n = d(q)$ At each successive repetition of the procedure, set $m$ to be the value of $k$ from the previous step and decrease $n$ by 1.

Let us illustrate this with an example. We will rewrite $7/8$ in factorial base. Looking at factorials, we see that $8$ does not divide either $2!$ or $3!$ but it does divide $4!$ so we have $d(8) = 4$

Next we rewrite the fraction with $4!$ as denominator. Since $4! = 24$ and $24/8 = 3$ we should multiply both numerator and denominator of our fraction by $3$ to obtain $7/8 = 21/24 = 21/4!$

Now, we split off terms. We have $21 = 5 \cdot 4 + 1$ so $$ \frac{21}{4!} = \frac{5}{3!} + \frac{1}{4!}. $$ Next, $5 = 1 \cdot 3 + 2$ so \begin{eqnarray*} \frac{5}{3!} &=& \frac{1}{2!} + \frac{2}{3!} \\ \frac{21}{4!} &=& \frac{1}{2!} + \frac{2}{3!} + \frac{1}{4!}. \end{eqnarray*}Since $1 < 2$ we are done. Thus, we see that the factorial base representation of $7/8$ is $0 \, . \, 1 \, 2 \, 1$ as in the table in the parent entry.

We can make the calculation more concise by noting that the splitting off of terms can also be described as follows: the factorial base representation of $m/n!$ is the factorial base representation of $k/(n-1)!$ followed by $r$ where $m = k \cdot n + r$ , as above. For example, let us compute the factorial base representation of $7/9$ using this trick. Looking at factorials, we see that $d(9) = 6$ We express our fraction with a denominator of $6! = 720$ $$ \frac{7}{9} = \frac{80 \cdot 7}{80 \cdot 9} = \frac{560}{720} = \frac{560}{6!} $$ We now split of digits like follows: \begin{eqnarray*} \frac{560}{6!} &=& \frac{93}{5!} \, 2 \\ &=& \frac{18}{4!} \, 3 \, 2 \\ &=& \frac{4}{3!} \, 2 \, 3 \, 2 \\ &=& \frac{1}{2!} \, 1 \, 2 \, 3 \, 2 \end{eqnarray*}Hence, we see that the factorial base representation of $7/9$ is $0 \, . \, 1 \, 1 \, 2 \, 3 \, 2$

The following LISP program computes factorial base representations of rational numbers using this method. It was used to compute the table of factorial base representations in the parent entry.

(defun factorial) (n)
(cond ((= n 0) 1)
(t (* n (factorial (- n 1))))))
(defun d-tilde (n m)
(cond ((= (% (factorial m) n) 0) m)
(t (d-tilde n (+ m 1)))))
(defun d (n) (d-tilde n 1))
(defun s (p q)
(cond ((= q 1) nil)
(t (append
(s (/ p q) (- q 1))
(list (% p q))))))
(defun r (p q) (s
(* p (/ (f (d q)) q))
(d q)))

Since LISP can look rather confusing to someone who is not familiar with its notational conventions -- all functions are written as prefixes and parentheses are used a bit differently than usually, a translation into more typical mathematical notation may be helpful. To do this, let us define a few symbols. Let `$\ast$ denote the concatenaton of tuplets -- given an $n$ tuplet $(x1, x_2, \ldots, x_n)$ and an $m$ tuplet $(y_1, y_2, \ldots, y_m)$ we set $(x1, x_2, \ldots, x_n) \ast (y_1, y_2, \ldots, y_m)$ to be the $m+n$ tuplet $(x1, x_2, \ldots, x_n, y_1, y_2, \ldots y_m)$ Let ``$m \div n$ ' denote the integer part of $m/n$ and let ``$m \operatorname{\%} n$ denote the remainder of dividing $m$ by $n$ For instance, $13 \div 5 = 2$ and $13 \operatorname{\%} 5 = 3$ With these notational conventions, we may re-express our program as follows:

$$ n! := \begin{cases} 1 & n = 0 \\ n \cdot (n-1)! & \textrm{otherwise} \end{cases} $$

$$ {\tilde d} (n,m) := \begin{cases} m & m! \operatorname{\%} n = 0 \\ {\tilde d} (n, m+1) & \textrm{otherwise} \end{cases} $$

$$ d(n) := {\tilde d} (n,1) $$

$$ s(p,q) := \begin{cases} () & q = 1 \\ s (p \div q, q - 1) \ast (p \operatorname{\%} q) & \mathrm{otherwise} \end{cases} $$

$$ r(p,q) := s (p \cdot f(d(q)) / q, d(q) $$




"expressing fractions in factorial base" is owned by rspuzio. [ full author list (2) ]
(view preamble | get metadata)

View style:


This object's parent.
Log in to rate this entry.
(view current ratings)

Cross-references: remainder, integer part, tuplets, translation, prefixes, functions, rational numbers, digits, parent, representation, numerator, factorials, terms, denominator, integer, positive, factor, lowest terms, factorial base, fraction

This is version 10 of expressing fractions in factorial base, born on 2007-02-26, modified 2007-02-27.
Object id is 8995, canonical name is ExpressingFractionsInFactorialBase.
Accessed 2572 times total.

Classification:
AMS MSC11A63 (Number theory :: Elementary number theory :: Radix representation; digital problems)

Pending Errata and Addenda
None.
Discussion
Style: Expand: Order:
forum policy

No messages.

Interact
post | correct | update request | add example | add (any)