Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
31
Task/Hailstone-sequence/PARI-GP/hailstone-sequence-1.parigp
Normal file
31
Task/Hailstone-sequence/PARI-GP/hailstone-sequence-1.parigp
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
show(n)={
|
||||
my(t=1);
|
||||
while(n>1,
|
||||
print1(n",");
|
||||
n=if(n%2,
|
||||
3*n+1
|
||||
,
|
||||
n/2
|
||||
);
|
||||
t++
|
||||
);
|
||||
print(1);
|
||||
t
|
||||
};
|
||||
|
||||
len(n)={
|
||||
my(t=1);
|
||||
while(n>1,
|
||||
if(n%2,
|
||||
t+=2;
|
||||
n+=(n>>1)+1
|
||||
,
|
||||
t++;
|
||||
n>>=1
|
||||
)
|
||||
);
|
||||
t
|
||||
};
|
||||
|
||||
show(27)
|
||||
r=0;for(n=1,1e5,t=len(n);if(t>r,r=t;ra=n));print(ra"\t"r)
|
||||
22
Task/Hailstone-sequence/PARI-GP/hailstone-sequence-2.parigp
Normal file
22
Task/Hailstone-sequence/PARI-GP/hailstone-sequence-2.parigp
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
\\ Get vector with Collatz sequence for the specified starting number.
|
||||
\\ Limit vector to the lim length, or less, if 1 (one) term is reached (when lim=0).
|
||||
\\ 3/26/2016 aev
|
||||
Collatz(n,lim=0)={
|
||||
my(c=n,e=0,L=List(n)); if(lim==0, e=1; lim=n*10^6);
|
||||
for(i=1,lim, if(c%2==0, c=c/2, c=3*c+1); listput(L,c); if(e&&c==1, break));
|
||||
return(Vec(L)); }
|
||||
Collatzmax(ns,nf)={
|
||||
my(V,vn,mxn=1,mx,im=1);
|
||||
print("Search range: ",ns,"..",nf);
|
||||
for(i=ns,nf, V=Collatz(i); vn=#V; if(vn>mxn, mxn=vn; im=i); kill(V));
|
||||
print("Hailstone/Collatz(",im,") has the longest length = ",mxn);
|
||||
}
|
||||
|
||||
{
|
||||
\\ Required tests:
|
||||
print("Required tests:");
|
||||
my(Vr,vrn);
|
||||
Vr=Collatz(27); vrn=#Vr;
|
||||
print("Hailstone/Collatz(27): ",Vr[1..4]," ... ",Vr[vrn-3..vrn],"; length = ",vrn);
|
||||
Collatzmax(1,100000);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue