1Math::PlanePath::PyramiUdsSeirdeCso(n3t)ributed Perl DocMuamtehn:t:aPtliaonnePath::PyramidSides(3)
2
3
4

NAME

6       Math::PlanePath::PyramidSides -- points along the sides of pyramid
7

SYNOPSIS

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

DESCRIPTION

14       This path puts points in layers along the sides of a pyramid growing
15       upwards.
16
17                               21                        4
18                           20  13  22                    3
19                       19  12   7  14  23                2
20                   18  11   6   3   8  15  24            1
21               17  10   5   2   1   4   9  16  25    <- Y=0
22              ------------------------------------
23                                ^
24           ... -4  -3  -2  -1  X=0  1   2   3   4 ...
25
26       N=1,4,9,16,etc along the positive X axis is the perfect squares.
27       N=2,6,12,20,etc in the X=-1 vertical is the pronic numbers k*(k+1) half
28       way between those successive squares.
29
30       The pattern is the same as the "Corner" path but turned and spread so
31       the single quadrant in the "Corner" becomes a half-plane here.
32
33       The pattern is similar to "PyramidRows" (with its default step=2), just
34       with the columns dropped down vertically to start at the X axis.  Any
35       pattern occurring within a column is unchanged, but what was a row
36       becomes a diagonal and vice versa.
37
38   Lucky Numbers of Euler
39       An interesting sequence for this path is Euler's k^2+k+41.  The low
40       values are spread around a bit, but from N=1763 (k=41) they're the
41       vertical at X=40.  There's quite a few primes in this quadratic and
42       when plotting primes that vertical stands out a little denser than its
43       surrounds (at least for up to the first 2500 or so values).  The line
44       shows in other step==2 paths too, but not as clearly.  In the
45       "PyramidRows" for instance the beginning is up at Y=40, and in the
46       "Corner" path it's a diagonal.
47
48   N Start
49       The default is to number points starting N=1 as shown above.  An
50       optional "n_start" can give a different start, in the same pyramid
51       pattern.  For example to start at 0,
52
53           n_start => 0
54
55                       20                    4
56                    19 12 21                 3
57                 18 11  6 13 22              2
58              17 10  5  2  7 14 23           1
59           16  9  4  1  0  3  8 15 24    <- Y=0
60           --------------------------
61           -4 -3 -2 -1 X=0 1  2  3  4
62

FUNCTIONS

64       See "FUNCTIONS" in Math::PlanePath for behaviour common to all path
65       classes.
66
67       "$path = Math::PlanePath::PyramidSides->new ()"
68       "$path = Math::PlanePath::PyramidSides->new (n_start => $n)"
69           Create and return a new path object.
70
71       "($x,$y) = $path->n_to_xy ($n)"
72           Return the X,Y coordinates of point number $n on the path.
73
74           For "$n < 0.5" the return is an empty list, it being considered
75           there are no negative points in the pyramid.
76
77       "$n = $path->xy_to_n ($x,$y)"
78           Return the point number for coordinates "$x,$y".  $x and $y are
79           each rounded to the nearest integer which has the effect of
80           treating points in the pyramid as a squares of side 1, so the half-
81           plane y>=-0.5 is entirely covered.
82
83       "($n_lo, $n_hi) = $path->rect_to_n_range ($x1,$y1, $x2,$y2)"
84           The returned range is exact, meaning $n_lo and $n_hi are the
85           smallest and biggest in the rectangle.
86

FORMULAS

88   Rectangle to N Range
89       For "rect_to_n_range()", in each column N increases so the biggest N is
90       in the topmost row and and smallest N in the bottom row.
91
92       In each row N increases along the sequence X=0,-1,1,-2,2,-3,3, etc.  So
93       the biggest N is at the X of biggest absolute value and preferring the
94       positive X=k over the negative X=-k.
95
96       The smallest N conversely is at the X of smallest absolute value.  If
97       the X range crosses 0, ie. $x1 and $x2 have different signs, then X=0
98       is the smallest.
99

OEIS

101       Entries in Sloane's Online Encyclopedia of Integer Sequences related to
102       this path include
103
104           <http://oeis.org/A196199> (etc)
105
106           n_start=1 (the default)
107             A049240    abs(dY), being 0=horizontal step at N=square
108             A002522    N on X negative axis, x^2+1
109             A033951    N on X=Y diagonal, 4d^2+3d+1
110             A004201    N for which X>=0, ie. right hand half
111             A020703    permutation N at -X,Y
112
113          n_start=0
114             A196199    X coordinate, runs -n to +n
115             A053615    abs(X), runs n to 0 to n
116             A000196    abs(X)+abs(Y), being floor(sqrt(N)),
117                          k repeated 2k+1 times starting 0
118

SEE ALSO

120       Math::PlanePath, Math::PlanePath::PyramidRows, Math::PlanePath::Corner,
121       Math::PlanePath::DiamondSpiral, Math::PlanePath::SacksSpiral,
122       Math::PlanePath::MPeaks
123

HOME PAGE

125       <http://user42.tuxfamily.org/math-planepath/index.html>
126

LICENSE

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