Re: [math-fun] Doin' the Hilbert walk
DanA>What I wrote was misunderstood. Sorry about that, Dan!
(By the way, rwg, your last two sentences are quite interesting! I wonder how small, in some appropriate sense, that uncountable set
S = {x in [0,1]^n | #(finv(x)) > 1}
can be.
Rather huge. For the 2D Peano-Hilbert squarefiller, S = KxC U CxK, where C := [0,1] and K := the dyadic rationals therein, with the triply visited being the dense set KxK. You can intuit this by noting that images of closed subintervals of C are unions of closed squares. As the spacefill continues, other closed squares will share the boundaries. If instead we're filling a fudgeflake or a france, then the shared boundaries will be fractals, which are in some sense even larger than the square edges.
prp[p_]:=Block[{q=If[p[[1]]^2>p[[2]]^2,{-p[[3]],0,p[[1]]},{0,p[[3]],-p[[2]]}]},q*Sqrt[(p.p)/(q.q)]]
Stick[p_,q_]:=Block[{m=(p+q)/2,d=prp[q-p]/16,e},e=Cross[q-p,d]/Norm[q-p]; Table[Polygon[{r,m+Cos[2*(k-1)*Pi/3]*d+Sin[2*(k-1)*Pi/3]*e, m+Cos[2*k*Pi/3]*d+Sin[2*k*Pi/3]*e}],{r,{p,q}},{k,3}]]
Graphics3D[ Table[Stick[Treano[(k + 1/3)/256], Treano[(k + 4/3)/256]], {k,0,254}]]
These revisitations can blow out the Graphics3D above with Sticks of zero length, unless we add the (gaspy?) line Stick[x_, x_]:={}
produce the graphic at http://gosper.org/treano.png .
Oops, I used the long awaited mouse tumble feature to find a much nicer pose, but the Export command captured the original one. Here btw is the 2D version of Treano: (* Exactly and continuously map the rational unit interval onto the rational unit square. Peano redefines itself twice, calls itself in four places, and has no discernable termination condition.*) Peano[t_, a1_: 1, a0_: 0] := Peano[t, b1_: 1, b0_: 0] = (Peano[t, s1_: 1, s0_: 0] = ((a0 - s0)/(s1 - a1)); Module[{t4 = 4*t, n}, n = Floor[t4]; t4 -= n; Switch[n, 0, I*(1 - Peano[1 - t4, -I*a1/2, a0 + a1*I/2])/2, 1, (I + Peano[t4, a1/2, a0 + a1*I/2])/2, 2, (1 + I + Peano[t4, a1/2, a0 + a1*(1 + I)/2])/2, 3, 1 + I*Peano[1 - t4, a1*I/2, a0 + a1]/2, 4, 1]]) Nevertheless, e.g., In[2] := Peano[7/22] 7 17 I Out[2]:= -- + ---- 66 22
So SW's intial assessment was correct: trivial. Do I need a smiley here? --rwg MENSURATIONAL NEONATURALISM
On 11/15/08, rwg@sdf.lonestar.org <rwg@sdf.lonestar.org> wrote:
DanA>What I wrote was misunderstood.
Sorry about that, Dan! ...
So SW's intial assessment was correct: trivial.
Do I need a smiley here?
The property of "locality" seems to have been overlooked in the current discussion. As far as I recall, no-one had denied that Peano-like curves are relatively easy to construct. [Nor unfortunately, has anyone else attempted to discuss exactly what exactly constitutes a Hilbert-like curve in dimension > 2.] WFL
wfl> On 11/15/08, rwg@sdf.lonestar.org <rwg@sdf.lonestar.org> wrote:
rwg> DanA>What I wrote was misunderstood.
Sorry about that, Dan! ...
So SW's intial assessment was correct: trivial.
Do I need a smiley here?
wfl> The property of "locality" seems to have been overlooked in the
current discussion. As far as I recall, no-one had denied that Peano-like curves are relatively easy to construct.
Indeed. There are 2^8 variations on my Treano function, corresponding to reflecting each of the eight subcubes about a diagonal plane. E.g., I probably should have 0, Treano[t8, a1[[{3,2,1}]]/2, a0][[{3,1,2}]]/2, instead of 0, Treano[t8, a1[[{1,3,2}]]/2, a0][[{1,3,2}]]/2, to get a more consistent texture.
[Nor unfortunately, has anyone else attempted to discuss exactly what exactly constitutes a Hilbert-like curve in dimension > 2.] WFL
For dimension D, presumably a finite state machine converting D bit bytes of t into vectors of D one bit bytes of x1,...,x_D, with corner connectivity. Once you build one, you can fairly easily build the inverse, which produces a vector of possibly several inverse images. rwg>Oops, I used the long awaited mouse tumble feature to find a
much nicer pose, but the Export command captured the original one.
If you have Mma, I highly recommend, e.g., mouse-wobbling Graphics3D[Table[Stick[Treano[(k+1/3)/512],Treano[(k+4/3)/512]],{k,0,510}]] and Graphics3D[Table[Stick[Treano[(k+0/3)/511],Treano[(k+3/3)/511]],{k,0,510}]] Looking at stills of these is like trying to parse protein molecules. --rwg TRIANGULATED ADULTERATING BATHYTHERM BETA RHYTHM PORTATIVE VAPORETTI PASSENGER LINER ??
On 11/15/08, rwg@sdf.lonestar.org <rwg@sdf.lonestar.org> wrote:
DanA>What I wrote was misunderstood.
Sorry about that, Dan!
(By the way, rwg, your last two sentences are quite interesting! I wonder how small, in some appropriate sense, that uncountable set
S = {x in [0,1]^n | #(finv(x)) > 1}
can be.
Rather huge. For the 2D Peano-Hilbert squarefiller, S = KxC U CxK, where C := [0,1] and K := the dyadic rationals therein, with the triply visited being the dense set KxK.
Well, that's huge in the sense that it's uncountable and dense, but it's "small" in at least two senses: It has measure 0, and it's a "meagre" set; that is, a countable union of nowhere dense sets. -- Andy.Latto@pobox.com
participants (3)
-
Andy Latto -
Fred lunnon -
rwg@sdf.lonestar.org