[seqfan] Re: new dragon conjecture
brad klee
bradklee at proton.me
Tue Mar 19 20:14:10 CET 2024
Hi Fred,
> Can anybody interpret the term "spigot difference" ?
Here's a reference that seems pretty good:
https://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/spigot.pdf
Jeremy Gibbons, "Unbounded Spigot Algorithms for the Digits of Pi".
> Rabinowitz and Wagon call their algorithm a spigot algorithm,
> because it yields digits incrementally and does not reuse digits
> after they have been computed. The digits drip out one by one,
> as if from a leaky tap. In contrast, most algorithms for computing
> the digits of π execute inscrutably, delivering no output until
> the whole computation is completed.
Although these algorithms do not "reuse digits", they tend to
accumulate lots of hidden data. The hidden data is what I've
loosely called the "spigot differences", since that data
effectively works like a transition vector between states.
Take for example the pi g function at the top of Gibbons page 2.
It is not too much to type and check. In doing so, I get the
following sequence of hidden states:
branch->{n,q,r,t,k,l}
Q -> {3, 1, 0, 1, 1, 3},
P -> {3, 1, 6, 3, 2, 5},
Q -> {0, 10, -30, 3, 2, 5},
Q -> {0, 20, -50, 15, 3, 7},
P -> {1, 60, -70, 105, 4, 9},
Q -> {0, 600, -1750, 105, 4, 9},
Q -> {2, 2400, -4950, 945, 5, 11},
Q -> {3, 12000, -1650, 10395, 6, 13},
Q -> {3, 72000, 290550, 135135, 7, 15},
Q -> {3, 504000, 6518250, 2027025, 8, 17},
P -> {4, 4032000, 127946250, 34459425, 9, 19}
The branches--P = Print = True, and Q = Quiet = False--determine
how the algorithm reaches its next state, and whether it will
output a digit. The computation above only gets to 3.14.
In this case, the notion of "spigot differences" turns out more
ambiguous due to the Q&P pattern. But since Q and P are always
determined by 4*q + r - t < n*t, we can say loosely that
the "spigot differences" are a combination of {q,r,t,k,l}.
Again, Why?
Because if we know "n" and we know {q,r,t,k,l} then we can
re-form the state vector {n,q,r,t,k,l} and iterate g again
to find the next state {n',q',r',t',k',l'}.
All of the columns from the iteration above could be entered
to OEIS, but the parity pattern is most simple, and the last
two columns are not too bad with apparently linear growth:
PQ: 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1,
0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1 ...
k: 1, 2, 2, 3, 4, 4, 5, 6, 7, 8, 9, 9, 10, 10, 11, 12, 13,
14, 14, 15, 16, 17, 18, 18, 19, 20, 20, 21, 22, 23, 23, 24 ...
l: 3, 5, 5, 7, 9, 9, 11, 13, 15, 17, 19, 19, 21, 21, 23, 25,
27, 29, 29, 31, 33, 35, 37, 37, 39, 41, 41, 43, 45, 47, 47 ...
Wouldn't these at least make a nice addition to celebrate
happy dragon year pi day (龍年率日快樂)?
The now-updated community post builds a spigot around one
p-recurrence from Beuker's Pi day lecture. Values of the
p-recurrence are hidden approximation data which we could
also construe (or misconstrue) as "spigot differences".
For example, this sequence is a necessary part of that data:
https://oeis.org/A006139
Another pragmatic record keeping question follows from the
final graph here:
https://community.wolfram.com/groups/-/m/t/3140560
Why does the algorithm starting from Beuker's approximation
have a smaller memory footprint?
Is it because Jeremy's g spigot has taken a step of encoding
to integers only? Or because more data is needed to rigorously
prove convergence?
Eventually it would be nice to have a flexible definition
of a spigot algorithm for integer sequences in general,
but it seems like details are getting in the way for now.
Thanks for you time,
--Brad
More information about the SeqFan
mailing list