Riecaman:=进程(a,s,M)
#从s开始,加上或减去a[n],得到M项。如果a有w项,可以得到M=w+1项。
局部b,M2,n,t;
如果whattype(a)<>list,则返回ERROR(“第一个参数应该是列表”);fi;
如果a[1]=0,则ERROR(“a[1]不应为零”);fi;
M2:=最小值(nops(a),M-1);
b: =[秒];t: =秒;
对于从1到M2的n,do
如果a[n]>t,则t:=t+a[n],否则t:=t-a[n';fi;b: =[op(b),t];日期:
b;结束;
块:=proc(a,S)局部b,c,d,M,L,n;
#给定一个列表a,其前导项具有索引S,return[b,c,d],其中b列出了a中低点的索引,c列出了a在低点的值,d列出了低点之间的行程长度。
b: =[];c: =[];d: =[];五十: =1;
#如果[1]是低点?
n: =1;
如果((a[n+1]>a[n])和(a[n+2]>a[n+1])),则
b: =[op(b),n+S-1];c: =[op(c),a[n]];d: =[op(d),n-L];五十: =n;fi;
n从2到nops(a)-2 do
#如果a[n]是低点?
如果((a[n-1]>a[n])和(a[n+1]>a[n])以及(a[n+2]>a[n+1])),则
b: =[op(b),n+S-1];c: =[op(c),a[n]];d: =[op(d),n-L];五十: =n;fi;od;
【b、c、d】;结束;
p0:=[seq(ithprime(n),n=1..1000001)]:
q1:=里卡曼(p0,1,100000):
|