Nice, my cantor was longer and more complicated: Cantor=: (*,0&*,*)^:]`1:@.(0-:]) SC=: 3 :'(,~,.~)^:y,1'
Thanks, -- Raul On Fri, Dec 1, 2017 at 1:20 AM, Roger Hui <[email protected]> wrote: > Cantor =: 3 : ', 1 0 1 */^:y ,1' > SC =: 3 : '(3 3$4>i.5) ,./^:2@(*/)^:y ,.1' > > Recursive solutions using the Mathematica ReplaceAll (/.) idea are also > possible, using indexing ({): > > Cantor1=: 3 : 'if. 0=y do. ,1 else. ,(Cantor1 y-1){0,:1 0 1 end.' > SC1 =: 3 : 'if. 0=y do. ,.1 else. ,./^:2 (SC1 y-1){0,:3 3$4>i.5 end.' > > Checking that they give the same results: > > (Cantor -: Cantor1)"0 i.8 > 1 1 1 1 1 1 1 1 > (SC -: SC1)"0 i.8 > 1 1 1 1 1 1 1 1 > > I claim the examples in my message unambiguously specify the extended H > problem. More details (and solutions) can be found in > http://code.jsoftware.com/wiki/Essays/Extended_H > > > > > On Thu, Nov 30, 2017 at 9:33 PM, Dabrowski, Andrew John < > [email protected]> wrote: > >> On 11/29/2017 11:40 PM, Roger Hui wrote: >> > 2.5 Cantor Set >> > >> > Write a function to compute the Cantor set of order n, n>:0. >> > >> > Cantor 0 >> > 1 >> > Cantor 1 >> > 1 0 1 >> > Cantor 2 >> > 1 0 1 0 0 0 1 0 1 >> > Cantor 3 >> > 1 0 1 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 0 1 >> > >> >> In Mathematica: >> >> cantor[n_] := If[n == 0, {1}, >> cantor[n - 1] /. {0 -> Sequence[0, 0, 0], 1 -> Sequence[1, 0, 1]}] >> >> I doubt J could do substantially better, but I'll leave that to you >> experts. >> >> > 2.6 Sierpinski Carpet >> > >> > Write a function to compute the Sierpinski Carpet of order n, n>:0. >> > >> > SC 0 >> > 1 >> > SC 1 >> > 1 1 1 >> > 1 0 1 >> > 1 1 1 >> > SC 2 >> > 1 1 1 1 1 1 1 1 1 >> > 1 0 1 1 0 1 1 0 1 >> > 1 1 1 1 1 1 1 1 1 >> > 1 1 1 0 0 0 1 1 1 >> > 1 0 1 0 0 0 1 0 1 >> > 1 1 1 0 0 0 1 1 1 >> > 1 1 1 1 1 1 1 1 1 >> > 1 0 1 1 0 1 1 0 1 >> > 1 1 1 1 1 1 1 1 1 >> I believe Mathematica has no built in tiling function, so I wrote one. >> >> tile[m_] := Join @@ ((Join @@@ #) & /@ (Transpose /@ m)); >> >> hole = {{1, 1, 1}, {1, 0, 1}, {1, 1, 1}}; >> zeros = Table[0, {3}, {3}]; >> >> sierpinski[n_] := If[n == 0, {{1}}, >> tile[sierpinski[n - 1] /. {1 -> hole, 0 -> zeros}]] >> >> >> The tiling utilities in J are very nice. >> >> >> >> Could give a reference for the extend H algorithm? I get the idea, but >> I'm a little unclear about the details. >> ---------------------------------------------------------------------- >> For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
