AOn 1 Dec 2017 05:33:02 +0000,"Dabrowski, Andrew John" <[email protected] 
<mailto:[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 also tried this in Mathematica. The quickest way is to use one of the “higher 
order” built-in (i.e., primitive) functions:

          SubstitutionSystem[{1 -> {1, 0, 1}, 0 -> {0, 0, 0}}, 1, 2]
   {{1}, {1, 0, 1}, {1, 0, 1, 0, 0, 0, 1, 0, 1}}

Or one can go back to more basic built-in functions, much as Andrew John 
Dabrowski did:

           cStep[lis_] := Flatten[lis /. {1 -> {1, 0, 1}, 0 -> {0, 0, 0}}]
      NestList[cStep, {1}, 2]
    {{1}, {1, 0, 1}, {1, 0, 1, 0, 0, 0, 1, 0, 1}}

Interestingly, Mathematica also has as a built-in function CantorMesh built, 
which directly returns a graphic display of a collection of subintervals in the 
construction of the Cantor ternary set, with the depth indicated by the 
argument supplied to it. Thus

         CantorMesh /@ Range[0, 2]

returns as output a list of images — the original unit interval, the 1st and 
3rd thirds of that interval, and the 1st, 3rd, 7th and 9th ninths of that 
interval.  (I cannot include graphics here, but the output is show in my post 
at 
https://mathematica.stackexchange.com/questions/161024/extract-cell-indicators-from-meshregion/161098#161098
 .)

——
Murray Eisenberg                                [email protected]
Mathematics & Statistics Dept.       
Lederle Graduate Research Tower      phone 240 246-7240 (H)
University of Massachusetts                
710 North Pleasant Street                 
Amherst, MA 01003-9305




----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to