OFFSET
0,1
COMMENTS
A "low point" in a sequence is a term which is less than the previous term (this condition is skipped for the initial term) and which is followed by two or more increases.
LINKS
Rémy Sigrist, PARI program for A324787
MAPLE
Riecaman := proc(a, s, M)
# Start with s, add or subtract a[n], get M terms. If a has w terms, can get M=w+1 terms.
local b, M2, n, t;
if whattype(a) <> list then ERROR("First argument should be a list"); fi;
if a[1]=0 then ERROR("a[1] should not be zero"); fi;
M2 := min(nops(a), M-1);
b:=[s]; t:=s;
for n from 1 to M2 do
if a[n]>t then t:=t+a[n] else t:=t-a[n]; fi; b:=[op(b), t]; od:
b; end;
blocks := proc(a, S) local b, c, d, M, L, n;
# Given a list a, whose leading term has index S, return [b, c, d], where b lists the indices of the low points in a, c lists the values of a at the low points, and d lists the length of runs between the low points.
b:=[]; c:=[]; d:=[]; L:=1;
# if a[1] a low point?
n:=1;
if( (a[n+1]>a[n]) and (a[n+2]>a[n+1]) ) then
b:=[op(b), n+S-1]; c:=[op(c), a[n]]; d:=[op(d), n-L]; L:=n; fi;
for n from 2 to nops(a)-2 do
# if a[n] a low point?
if( (a[n-1]>a[n]) and (a[n+1]>a[n]) and (a[n+2]>a[n+1]) ) then
b:=[op(b), n+S-1]; c:=[op(c), a[n]]; d:=[op(d), n-L]; L:=n; fi; od;
[b, c, d]; end;
p0:=[seq(ithprime(n), n=1..100001)]:
q1:=Riecaman(p0, 1, 100000):
PROG
(PARI) See Links section.
CROSSREFS
KEYWORD
nonn,more
AUTHOR
N. J. A. Sloane, Sep 04 2019
EXTENSIONS
Modified definition to make offset 0. - N. J. A. Sloane, Oct 02 2019
a(12)-a(22) from Rémy Sigrist, Oct 18 2020
STATUS
approved