OFFSET
1,1
COMMENTS
Definition of the expansion: for a positive real number x, there is always a unique sequence of signed integers with increasing absolute value |a(i)|>|a(i-1)| such that x =floor(x)+ 1/a(1) + 1/a(1)/a(2) + 1/a(1)/a(2)/a(3) + 1/a(1)/a(2)/a(3)/a(4) ... or equivalently x=floor(x)+1/a(1)*(1+1/a(2)*(1+1/a(3)*(1+1/a(4)*(1+...)))) giving the fastest converging series with this representation. This formula can be represented as a regular ascending continued fraction. The expansion is similar to Engel and Pierce expansions, but the sign of the terms is not predefined and determined by the algorithm for optimizing the convergence.
For x rational number the expansion has a finite number of terms, for x irrational an infinite number. Empirically the sequence doesn't show any evident regularity except in some interesting cases.
LINKS
G. C. Greubel, Table of n, a(n) for n = 1..500
FORMULA
Given a positive real number x, let z(0)=x-floor(x) and z(k+1)=abs(z(k))*round(1/abs(z(k)))-1 ; then a(n)=sign(z(n))*round(1/abs(z(n))) for n>0.
EXAMPLE
Pi = 3 + 1/7*(1 - 1/113*(1 + 1/4739*(1 - 1/46804*(1 + 1/134370*(1 - 1/614063*(1 + 1/1669512*(1 + ...))))))).
MAPLE
# Slow procedure valid for every number
ArticoExp := proc (n, q::posint)::list; local L, i, z; Digits := 50000; L := []; z := n-floor(n); for i to q+1 do if z = 0 then break end if; L := [op(L), round(1/abs(z))*sign(evalf(z))]; z := abs(z)*round(1/abs(z))-1 end do; return L end proc
# Fast procedure, not suited for rational numbers
ArticoExp := proc (n, q::posint)::list; local L, i, z; Digits := 50000; L := []; z := frac(evalf(n)); for i to q+1 do if z = 0 then break end if; L := [op(L), round(1/abs(z))*sign(z)]; z := abs(z)*round(1/abs(z))-1 end do; return L end proc
# List the first 20 terms of the expansion of Pi
ArticoExp(Pi, 20)
MATHEMATICA
ArticoExp[x_, n_] := Round[1/#] & /@ NestList[Round[1/Abs[#]]*Abs[#] - 1 &, FractionalPart[x], n]; Block[{$MaxExtraPrecision = 50000}, ArticoExp[Pi, 20]]
PROG
(Derive)
ArticoExp(x, n) := VECTOR(ROUND(1, ABS(k))*SIGN(k), k, ITERATES(ROUND(1, ABS(u))*ABS(u) - 1, u, MOD(x), n))
Precision:=Mixed
PrecisionDigits:=10000
ArticoExp(PI, 20)
CROSSREFS
KEYWORD
sign
AUTHOR
Giovanni Artico, Sep 08 2013
STATUS
approved