login
Dragon curve triple point numerators: When a(n) in 0, 1, 2, ..., (5*2^k), Dragon(a(n)/(5*2^k)) has exactly three distinct, rational preimages.
7

%I #51 Jun 16 2018 22:15:33

%S 7,13,14,26,27,28,33,37,47,52,53,54,56,57,66,67,69,71,73,74,77,87,93,

%T 94,97,103,104,106,107,108,109,111,112,113,114,123,127,132,133,134,

%U 138,139,141,142,146,147,148,149,151,153,154,157,167,173,174,177,186,187,188,189,191,193,194,197,206,207,208,209,211,212,213,214,216,217,218,219,221,222,223,224,226,227,228

%N Dragon curve triple point numerators: When a(n) in 0, 1, 2, ..., (5*2^k), Dragon(a(n)/(5*2^k)) has exactly three distinct, rational preimages.

%C It appears that Dragon(a(n)/(5*2^k)) = Dragon(b/(15*2^k)) = Dragon(c/(15*2^k)) for some b and c.

%C See dragun in the MATHEMATICA section for an exact evaluator of the continuous, spacefilling Dragon function which maps [0,1] into C, and undrag, its multivalued inverse.

%C The first differences of this sequence appear to comprise only 1,2,3,4,5,6,9, and 10.

%C It appears that every Dragon triple point is an image of a(n)/(5*2^k) for some n and k.

%C The set of values DRAG(m/(14*2^k)) with m in {0, 1, 2, ..., 14*2^k} also contains points at least triple whenever k > 0. See Examples. - _Bradley Klee_, Aug 14 2015

%C Using quaternary expansions of planar coordinates and a substitution tiling, one can prove the following: If a point along the Dragon curve has rational planar coordinates, it is visited one, two, or three times. The corollary is: All rational points at least triple are exactly triple. - _Bradley Klee_, Aug 18 2015

%H Brady Haran and Don Knuth, <a href="https://www.youtube.com/watch?v=v678Em6qyzk">Wrong turn on the Dragon</a>, Numberphile video (2014)

%H Wikipedia, <a href="http://en.wikipedia.org/wiki/Dragon_curve">Dragon curve</a>

%H Bill Gosper, <a href="/A260482/a260482.png">Illustration</a>

%H Bill Gosper, <a href="/A260482/a260482_1.png">Illustration</a>

%H Bill Gosper, <a href="/A260482/a260482_2.png">Illustration</a>

%e a(8) = 47, so if Dragon(0) = 0, Dragon(1) = 1, Dragon(1/3) = 1/5+2i/5, then

%e Dragon(133/240) = Dragon(47/80) = Dragon(143/240) = 2/3+5i/12 and

%e Dragon(133/480) = Dragon(47/160) = Dragon(143/480) = 1/8+13i/24 and ...

%e Dragon(133/3840) = Dragon(47/1280) = Dragon(143/3840) = -1/6-5i/48 and ...

%e DRAG(13/28) = DRAG(17/28)= DRAG(19/28) = 3/5 + 3/10 i. - _Bradley Klee_, Aug 11 2015

%t (* by Julian Ziegler Hunts *)

%t piecewiserecursivefractal[x_, f_, which_, iters_, fns_] := piecewiserecursivefractal[x, g_, which, iters, fns] = ((piecewiserecursivefractal[x, h_, which, iters, fns] := Block[{y}, y /. Solve[f[y] == h[y], y]]); Union @@ ((fns[[#]] /@ piecewiserecursivefractal[iters[[#]][x], Composition[f, fns[[#]]], which, iters, fns]) & /@ which[x]));

%t dragun[t_] := piecewiserecursivefractal[t, Identity, Piecewise[{{{1}, 0 <= # <= 1/2}, {{2}, 1/2 <= # <= 1}}, {}] &, {2*# &, 2*(1 - #) &}, {(1 + I)*#/2 &, (I - 1)*#/2 + 1 &}]

%t undrag[z_] := piecewiserecursivefractal[z, Identity, If[-(1/3) <= Re[#] <= 7/6 && -(1/3) <= Im[#] <= 2/3, {1, 2}, {}] &, {#*(1 - I) &, (1 - #)*(1 + I) &}, {#/2 &, 1 - #/2 &}]

%t Do[If[Length[undrag[dragun[k/80][[1]]]] > 2, Print[k]], {k, 0, 68}]

%t (* same as, e.g. *)

%t Do[If[Length[undrag[dragun[k/20480][[1]]]] > 2, Print[k]], {k, 0, 68}]

%t (* Not {k,0,69} because undrag@@dragun[69/20480] = {69/20480, 211/61440, 341/61440} but undrag@@dragun[69/80] = {69/80, 211/240}, since 341/240 > 1, outside the Dragon's preimage = [0,1]. Corrected by _Bill Gosper_, Feb 18 2018. *)

%Y Cf. A260747..A260750, A261120.

%K nonn,frac

%O 1,1

%A _Bill Gosper_, Jul 26 2015

%E Name simplified by _Bradley Klee_, Aug 18 2015