Jump to content

Non-integer base of numeration

From Wikipedia, the free encyclopedia
(Redirected from Non-integer representation)

A non-integer representation uses non-integer numbers as the radix, or base, of a positional numeral system. For a non-integer radix β > 1, the value of

is

The numbers di are non-negative integers less than β. This is also known as a β-expansion, a notion introduced by Rényi (1957) and first studied in detail by Parry (1960). Every real number has at least one (possibly infinite) β-expansion. The set of all β-expansions that have a finite representation is a subset of the ring Z[β, β−1].

There are applications of β-expansions in coding theory[1] and models of quasicrystals.[2]

Construction

[edit]

β-expansions are a generalization of decimal expansions. While infinite decimal expansions are not unique (for example, 1.000... = 0.999...), all finite decimal expansions are unique. However, even finite β-expansions are not necessarily unique, for example φ + 1 = φ2 for β = φ, the golden ratio. A canonical choice for the β-expansion of a given real number can be determined by the following greedy algorithm, essentially due to Rényi (1957) and formulated as given here by Frougny (1992).

Let β > 1 be the base and x a non-negative real number. Denote by x the floor function of x (that is, the greatest integer less than or equal to x) and let {x} = x − ⌊x be the fractional part of x. There exists an integer k such that βkx < βk+1. Set

and

For k − 1 ≥  j > −∞, put

In other words, the canonical β-expansion of x is defined by choosing the largest dk such that βkdkx, then choosing the largest dk−1 such that βkdk + βk−1dk−1x, and so on. Thus it chooses the lexicographically largest string representing x.

With an integer base, this defines the usual radix expansion for the number x. This construction extends the usual algorithm to possibly non-integer values of β.

Conversion

[edit]

Following the steps above, we can create a β-expansion for a real number (the steps are identical for an , although n must first be multiplied by −1 to make it positive, then the result must be multiplied by −1 to make it negative again).

First, we must define our k value (the exponent of the nearest power of β greater than n, as well as the amount of digits in , where is n written in base β). The k value for n and β can be written as:

After a k value is found, can be written as d, where

for k − 1 ≥  j > −∞. The first k values of d appear to the left of the decimal place.

This can also be written in the following pseudocode:[3]

function toBase(n, b) {
	k = floor(log(b, n)) + 1
	precision = 8
	result = ""

	for (i = k - 1, i > -precision-1, i--) {
		if (result.length == k) result += "."
		
		digit = floor((n / b^i) mod b)
		n -= digit * b^i
		result += digit
	}

	return result
}

Note that the above code is only valid for and , as it does not convert each digits to their correct symbols or correct negative numbers. For example, if a digit's value is 10, it will be represented as 10 instead of A.

Example implementation code

[edit]

To base π

[edit]
  • JavaScript:[3]
    function toBasePI(num, precision = 8) {    
        let k = Math.floor(Math.log(num)/Math.log(Math.PI)) + 1;
        if (k < 0) k = 0;
    
        let digits = [];
    
        for (let i = k-1; i > (-1*precision)-1; i--) {
            let digit = Math.floor((num / Math.pow(Math.PI, i)) % Math.PI);
            num -= digit * Math.pow(Math.PI, i);
            digits.push(digit);
    
            if (num < 0.1**(precision+1) && i <= 0)
                break;
        }
    
        if (digits.length > k)
            digits.splice(k, 0, ".");
    
        return digits.join("");
    }
    

From base π

[edit]
  • JavaScript:[3]
    function fromBasePI(num) {
        let numberSplit = num.split(/\./g);
        let numberLength = numberSplit[0].length;
    
        let output = 0;
        let digits = numberSplit.join("");
    
        for (let i = 0; i < digits.length; i++) {
            output += digits[i] * Math.pow(Math.PI, numberLength-i-1);
        }
    
        return output;
    }
    

Examples

[edit]

Base 2

[edit]

Base 2 behaves in a very similar way to base 2 as all one has to do to convert a number from binary into base 2 is put a zero digit in between every binary digit; for example, 191110 = 111011101112 becomes 1010100010101000101012 and 511810 = 10011111111102 becomes 10000010101010101010101002. This means that every integer can be expressed in base 2 without the need of a decimal point. The base can also be used to show the relationship between the side of a square to its diagonal as a square with a side length of 12 will have a diagonal of 102 and a square with a side length of 102 will have a diagonal of 1002. Another use of the base is to show the silver ratio as its representation in base 2 is simply 112. In addition, the area of a regular octagon with side length 12 is 11002, the area of a regular octagon with side length 102 is 1100002, the area of a regular octagon with side length 1002 is 110000002, etc…

Golden base

[edit]

In the golden base, some numbers have more than one decimal base equivalent: they are ambiguous. For example: 11φ = 100φ.

Base ψ

[edit]

There are some numbers in base ψ that are also ambiguous. For example, 101ψ = 1000ψ.

Base e

[edit]

With base e the natural logarithm behaves like the common logarithm as ln(1e) = 0, ln(10e) = 1, ln(100e) = 2 and ln(1000e) = 3.

The base e is the most economical choice of radix β > 1,[4] where the radix economy is measured as the product of the radix and the length of the string of symbols needed to express a given range of values.

Base π

[edit]

Base π can be used to more easily show the relationship between the diameter of a circle to its circumference, which corresponds to its perimeter; since circumference = diameter × π, a circle with a diameter 1π will have a circumference of 10π, a circle with a diameter 10π will have a circumference of 100π, etc. Furthermore, since the area = π × radius2, a circle with a radius of 1π will have an area of 10π, a circle with a radius of 10π will have an area of 1000π and a circle with a radius of 100π will have an area of 100000π.[5]

Properties

[edit]

In no positional number system can every number be expressed uniquely. For example, in base ten, the number 1 has two representations: 1.000... and 0.999.... The set of numbers with two different representations is dense in the reals,[6] but the question of classifying real numbers with unique β-expansions is considerably more subtle than that of integer bases.[7]

Another problem is to classify the real numbers whose β-expansions are periodic. Let β > 1, and Q(β) be the smallest field extension of the rationals containing β. Then any real number in [0,1) having a periodic β-expansion must lie in Q(β). On the other hand, the converse need not be true. The converse does hold if β is a Pisot number,[8] although necessary and sufficient conditions are not known.

See also

[edit]

References

[edit]

Footnotes

[edit]
  1. ^ Kautz 1965
  2. ^ Burdik et al. 1998; Thurston 1989
  3. ^ a b c "Home", decimalsystem.js.org
  4. ^ Hayes 2001
  5. ^ "Weird Number Bases", DataGenetics, retrieved 2018-02-01
  6. ^ Petkovšek 1990
  7. ^ Glendinning & Sidorov 2001
  8. ^ Schmidt 1980

Sources

[edit]

Further reading

[edit]
  • Sidorov, Nikita (2003), "Arithmetic dynamics", in Bezuglyi, Sergey; Kolyada, Sergiy (eds.), Topics in dynamics and ergodic theory. Survey papers and mini-courses presented at the international conference and US-Ukrainian workshop on dynamical systems and ergodic theory, Katsiveli, Ukraine, August 21–30, 2000, Lond. Math. Soc. Lect. Note Ser., vol. 310, Cambridge: Cambridge University Press, pp. 145–189, ISBN 978-0-521-53365-2, Zbl 1051.37007
[edit]