1Math::PlanePath::CellulUasreRrulCeo5n7t(r3i)buted Perl DMoactuhm:e:nPtlaatnieoPnath::CellularRule57(3)
2
3
4

NAME

6       Math::PlanePath::CellularRule57 -- cellular automaton 57 and 99 points
7

SYNOPSIS

9        use Math::PlanePath::CellularRule57;
10        my $path = Math::PlanePath::CellularRule57->new;
11        my ($x, $y) = $path->n_to_xy (123);
12

DESCRIPTION

14       This is the pattern of Stephen Wolfram's "rule 57" cellular automaton
15
16           <http://mathworld.wolfram.com/ElementaryCellularAutomaton.html>
17
18       arranged as rows
19
20                       51       52       53 54    55 56                 10
21           38 39 40 41       42       43    44 45    46 47 48 49 50      9
22                          33       34    35    36 37                     8
23                 23 24 25       26       27 28    29 30 31 32            7
24                             19       20    21 22                        6
25                       12 13       14    15    16 17 18                  5
26                                 9       10 11                           4
27                              5        6     7  8                        3
28                                    3     4                              2
29                                          2                              1
30                                       1                             <- Y=0
31
32           -9 -8 -7 -6 -5 -4 -3 -2 -1 X=0 1  2  3  4  5  6  7  8  9
33
34       The triangular numbers N=10,15,21,28,etc, k*(k+1)/2, make a 1/2 sloping
35       diagonal upwards.
36
37       On rows with odd Y there's a solid block at either end then 1 of 3
38       cells to the left and 2 of 3 to the right of the centre.  On even Y
39       rows there's similar 1 of 3 and 2 of 3 middle parts, but without the
40       solid ends.  Those 1 of 3 and 2 of 3 are successively offset so as to
41       make lines going up towards the centre as can be seen in the following
42       plot.
43
44           ***********  *  *  *  * * ** ** ** ************
45                       *  *  *  *  ** ** ** **
46             **********  *  *  *  * ** ** ** ***********
47                        *  *  *  * * ** ** **
48               *********  *  *  *  ** ** ** **********
49                         *  *  *  * ** ** **
50                 ********  *  *  * * ** ** *********
51                          *  *  *  ** ** **
52                   *******  *  *  * ** ** ********
53                           *  *  * * ** **
54                     ******  *  *  ** ** *******
55                            *  *  * ** **
56                       *****  *  * * ** ******
57                             *  *  ** **
58                         ****  *  * ** *****
59                              *  * * **
60                           ***  *  ** ****
61                               *  * **
62                             **  * * ***
63                                *  **
64                               *  * **
65                                 * *
66                                   *
67                                  *
68
69   Mirror
70       The "mirror => 1" option gives the mirror image pattern which is "rule
71       99".  The point numbering shifts but the total points on each row is
72       the same.
73
74                       51 52    53 54       55       56                  10
75           38 39 40 41 42    43 44    45       46       47 48 49 50       9
76                          33 34    35    36       37                      8
77                 23 24 25 26    27 28       29       30 31 32             7
78                             19 20    21       22                         6
79                       12 13 14    15    16       17 18                   5
80                                 9 10       11                            4
81                              5  6     7        8                         3
82                                    3     4                               2
83                                    2                                     1
84                                       1                              <- Y=0
85
86           -9 -8 -7 -6 -5 -4 -3 -2 -1 X=0 1  2  3  4  5  6  7  8  9
87
88   N Start
89       The default is to number points starting N=1 as shown above.  An
90       optional "n_start" can give a different start, in the same pattern.
91       For example to start at 0,
92
93           n_start => 0
94
95           22 23 24       25       26 27    28 29 30 31
96                       18       19    20 21
97                 11 12       13    14    15 16 17
98                           8        9 10
99                        4        5     6  7
100                              2     3
101                                    1
102                                 0
103

FUNCTIONS

105       See "FUNCTIONS" in Math::PlanePath for behaviour common to all path
106       classes.
107
108       "$path = Math::PlanePath::CellularRule57->new ()"
109       "$path = Math::PlanePath::CellularRule57->new (mirror => $bool, n_start
110       => $n)"
111           Create and return a new path object.
112
113       "($x,$y) = $path->n_to_xy ($n)"
114           Return the X,Y coordinates of point number $n on the path.
115
116       "$n = $path->xy_to_n ($x,$y)"
117           Return the point number for coordinates "$x,$y".  $x and $y are
118           each rounded to the nearest integer, which has the effect of
119           treating each cell as a square of side 1.  If "$x,$y" is outside
120           the pyramid or on a skipped cell the return is "undef".
121

SEE ALSO

123       Math::PlanePath, Math::PlanePath::CellularRule,
124       Math::PlanePath::CellularRule54, Math::PlanePath::CellularRule190,
125       Math::PlanePath::PyramidRows
126
127       <http://mathworld.wolfram.com/ElementaryCellularAutomaton.html>
128

HOME PAGE

130       <http://user42.tuxfamily.org/math-planepath/index.html>
131

LICENSE

133       Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020
134       Kevin Ryde
135
136       This file is part of Math-PlanePath.
137
138       Math-PlanePath is free software; you can redistribute it and/or modify
139       it under the terms of the GNU General Public License as published by
140       the Free Software Foundation; either version 3, or (at your option) any
141       later version.
142
143       Math-PlanePath is distributed in the hope that it will be useful, but
144       WITHOUT ANY WARRANTY; without even the implied warranty of
145       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
146       General Public License for more details.
147
148       You should have received a copy of the GNU General Public License along
149       with Math-PlanePath.  If not, see <http://www.gnu.org/licenses/>.
150
151
152
153perl v5.36.0                      2023-01-20Math::PlanePath::CellularRule57(3)
Impressum