2016 Update
This commit is contained in:
parent
948b86eafa
commit
dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions
|
|
@ -0,0 +1,27 @@
|
|||
\\ Stern-Brocot sequence
|
||||
\\ 5/27/16 aev
|
||||
SternBrocot(n)={
|
||||
my(L=List([1,1]),k=2); if(n<3,return(L));
|
||||
for(i=2,n, listput(L,L[i]+L[i-1]); if(k++>=n, break); listput(L,L[i]);if(k++>=n, break));
|
||||
return(Vec(L));
|
||||
}
|
||||
\\ Find the first item in any list starting with sind index (return 0 or index).
|
||||
\\ 9/11/2015 aev
|
||||
findinlist(list, item, sind=1)={
|
||||
my(idx=0, ln=#list); if(ln==0 || sind<1 || sind>ln, return(0));
|
||||
for(i=sind, ln, if(list[i]==item, idx=i; break;)); return(idx);
|
||||
}
|
||||
{
|
||||
\\ Required tests:
|
||||
my(v,j);
|
||||
v=SternBrocot(15);
|
||||
print1("The first 15: "); print(v);
|
||||
v=SternBrocot(1200);
|
||||
print1("The first i@n: "); \\print(v);
|
||||
for(i=1,10, if(j=findinlist(v,i), print1(i,"@",j,", ")));
|
||||
if(j=findinlist(v,100), print(100,"@",j));
|
||||
v=SternBrocot(10000);
|
||||
print1("All GCDs=1?: ");
|
||||
j=1; for(i=2,10000, j*=gcd(v[i-1],v[i]));
|
||||
if(j==1, print("Yes"), print("No"));
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue