Created
November 2, 2012 23:58
-
-
Save ekmett/4005130 to your computer and use it in GitHub Desktop.
golfing pi and e
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- e | |
> let z a b c d w@(x:y)=let t=a`div`c in if all(>0)[a,b,c,d]&&t==b`div`d then t:z(10*(a-c*t))(10*(b-d*t))c d w else z(x*a+b)a(x*c+d)c y;f n=1:1:n:f(n+2)in z 1 0 0 1(2:1:2:f 4)>>=show | |
> let z a b c d w@(x:y)|t<-a`div`c=if all(>0)[a,b,c,d]&&t==b`div`d then t:z(10*(a-c*t))(10*(b-d*t))c d w else z(x*a+b)a(x*c+d)c y;f n=1:1:n:f(n+2)in z 1 0 0 1(2:1:2:f 4)>>=show | |
> let z a b c d w@(x:y)|all(>0)[a,b,c,d]&&t==b`div`d|True=t:z(10*(a-c*t))(10*(b-d*t))c d w else z(x*a+b)a(x*c+d)c y where t=a`div`c;f n=1:1:n:f(n+2)in z 1 0 0 1(2:1:2:f 4)>>=show | |
> let z a b c d w@(x:y)|all(>0)[a,b,c,d]&&t==b`div`d=t:z(10*(a-c*t))(10*(b-d*t))c d w|True=z(x*a+b)a(x*c+d)c y where{t=a`div`c};f n=1:1:n:f(n+2)in z 1 0 0 1(2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z a b c d w@(x:y)|t<-a`div`c,all(>0)[a,b,c,d]&&t==b`div`d=t:z(10*(a-c*t))(10*(b-d*t))c d w|True=z(x*a+b)a(x*c+d)c y in z 1 0 0 1(2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z a b c d w@(x:y)|any(<=0)[a,b,c,d]||t/=b`div`d=z(x*a+b)a(x*c+d)c y|t<-a`div`c=t:z(10*(a-c*t))(10*(b-d*t))c d w in z 1 0 0 1(2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z v@[a,b,c,d]w@(x:y)|t<-a`div`c,all(>0)v&&t==b`div`d=z[x*a+b,a,x*c+d,c]y|True=t:z[10*(a-c*t),10*(b-d*t),c,d]w in z[1,0,0,1](2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z v@[a,b,c,d]w@(x:y)|t<-a`div`c,all(>0)v&&t==b`div`d=t:z[10*(a-c*t),10*(b-d*t),c,d]w|True=z[x*a+b,a,x*c+d,c]y in z[1,0,0,1](2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z v@[a,b,c,d]w@(x:y)|t<-a`div`c,all(>0)v&&t==b`div`d=t:z[10*(a-c*t),10*(b-d*t),c,d]w|True=z[x*a+b,a,x*c+d,c]y in z[1,0,0,1](2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z v@[a,b,c,d]w@(x:y)|t<-a`div`c,all(>0)v&&t==b`div`d=t:z[10*(a-c*t),10*(b-d*t),c,d]w|True=z[x*a+b,a,x*c+d,c]y in z[1,0,0,1](2:1:2:f 4)>>=show | |
> let f n=1:1:n:f(n+2);z[a,b,c,d]@v(x:y)@w|t<-a`div`c,all(>0)v&&t==b`div`d=t:z[10*(a-c*t),10*(b-d*t),c,d]w|True=z[x*a+b,a,x*c+d,c]y in z[1,0,0,1](2:1:2:f 4)>>=show | |
> let(!)=div;f n=1:1:n:f(n+2);v@[a,b,c,d]%w@(x:y)|t<-a!c,all(>0)v&&t==b!d=t:[10*(a-c*t),10*(b-d*t),c,d]%w|True=[x*a+b,a,x*c+d,c]%y in[1,0,0,1]%(2:1:2:f 4)>>=show | |
> let(!)=div;f n=1:1:n:f(n+2);v@[a,b,c,d]%w@(x:y)|t<-a!c,all(>0)v&&t==b!d=t:[10*(a-c*t),10*(b-d*t),c,d]%w|j<-x*c+d=[x*a+b,a,j,c]%y in[1,0,0,1]%(2:1:2:f 4)>>=show | |
> let(!)=div;f n=1:1:n:f(n+2);w@(x:y)%v@[a,b,c,d]|t<-a!c,all(>0)v&&t==b!d=t:w%[10*(a-c*t),10*(b-d*t),c,d]|j<-x*c+d=y%[x*a+b,a,j,c]in[1,0,0,1]%(2:1:2:f 4)>>=show | |
> let(!)=div;f n=1:1:n:f(n+2);w@(x:y)%v@[a,b,c,d]|t<-a!c,all(>0)v&&t==b!d=t:w%[10*(a-c*t),10*(b-d*t),c,d]|True=y%[x*a+b,a,x*c+d,c]in(2:1:2:f 4)%[1,0,0,1]>>=show | |
> let(!)=div;f n=1:1:n:f(n+2);w@(x:y)%v@[a,b,c,d]|t<-a!c,all(>0)v&&t==b!d=t:w%[10*(a-c*t),10*(b-d*t),c,d]|0<1=y%[x*a+b,a,x*c+d,c]in(2:1:2:f 4)%[1,0,0,1]>>=show | |
> let w(p,q)i=(p*i+1,q*i);d%(p,q)=p*d`div`q;(x:y:s)^d|d%y>d%x=s^d|0<1=mod(d%x)10:s^(10*d)in 2:scanl w(1,1)[1..]^10>>=show | |
> let(p,q)%d=p*d`div`q;w(p,q)i=(p*i+1,q*i);(x:y:s)^d|y%d>x%d=s^d|0<1=mod(x%d)10:s^(10*d)in 2:scanl w(1,1)[1..]^10>>=show | |
> (!!2)<$>transpose[show$sum$scanl div(10^2^n)[1..2^n]|n<-[0..]] | |
-- pi | |
> let g(q,r,t,k,n,l)|4*q+r-t<n*t=n:g(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n,l)|True=g(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l),l+2) in g(1,0,1,1,3,3)>>=show | |
> let(q,r,t,k,n)%l|4*q+r-t<n*t=n:(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n)%l|True=(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l))%(l+2)in (1,0,1,1,3)%3>>=show | |
> let(q,r,t,k,n)%l|4*q+r-t<n*t=n:(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n)%l|z<-l+2=(q*k,(2*q+r)*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l))%z in(1,0,1,1,3)%3>>=show | |
> let(q,r,t,k,n)%l|4*q+r-t<n*t=n:(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n)%l|z<-2*q+r=(q*k,z*l,t*l,k+1,div(q*(7*k+2)+r*l)(t*l))%(l+2)in(1,0,1,1,3)%3>>=show | |
> let(q,r,t,k,n)%l|4*q+r-t<n*t=n:(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n)%l|z<-t*l=(q*k,(2*q+r)*l,z,k+1,div(q*(7*k+2)+r*l)z)%(l+2)in(1,0,1,1,3)%3>>=show | |
> let[q,r,t,k,n]%l|4*q+r<n*(t-1)=n:[10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n]%l|z<-t*l=[q*k,(2*q+r)*l,z,k+1,div(q*(7*k+2)+r*l)z]%(l+2)in[1,0,1,1,3]%3>>=show | |
> let(!)=div;p=(10*);(q,r,t,k,n)%l|4*q+r-t<n*t=n:(p q,p(r-n*t),t,k,p(3*q+r)!t-10*n)%l|z<-t*l=(q*k,(2*q+r)*l,z,k+1,q*(7*k+2)+r*l!z)%(l+2)in(1,0,1,1,3)%3>>=show | |
> let(q,r,t,k,n)%l|4*q+r-t<n*t=n:(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n)%l|z<-q*(7*k+2)+r*l=(q*k,(2*q+r)*l,t*l,k+1,z`div`(t*l))%(l+2)in(1,0,1,1,3)%3>>=show | |
> let[q,r,t,k,n]%l|4*q+r-t<n*t=n:[10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n]%l|z<-t*l=[q*k,(2*q+r)*l,z,k+1,div(q*(7*k+2)+r*l)z]%(l+2)in[1,0,1,1,3]%3>>=show | |
> let(q,r,t,k,n)%l|4*q+r-t<n*t=n:(10*q,10*(r-n*t),t,k,div(10*(3*q+r))t-10*n)%l|z<-t*l=(q*k,(2*q+r)*l,z,k+1,div(q*(7*k+2)+r*l)z)%(l+2)in(1,0,1,1,3)%3>>=show | |
> '3':fix(\s n m->let a%i=10^(3*n)`div`(a^i*i)in(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++s(2*n)(2*m))1 9 | |
> '3':fix(\s n m->let a%i=div(1000^n)$a^i*i in(take n$drop n$show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++s(2*n)(2*m))1 9 | |
> '3':let n!m=let a%i=10^(3*n)`div`(a^i*i)in(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)!(2*m)in 1!9 | |
> let n/m=(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=10^(3*n)`div`(a^i*i)in '3':1/9 | |
> '3':do let{n/m=(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)$a^i*i};1/9 | |
> let n/m=(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)$a^i*i in '3':1/9 | |
> let n/m=(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)(a^i*i)in '3':1/9 | |
> let n/m=(take n.drop n.show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)$a^i*i in '3':1/9 | |
> '3':let n/m=(take n$drop n$show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)$a^i*i in 1/9 | |
> '3':let n/m=(take n$drop n$show$sum[4*(-1)^div i 2*(2%i+3%i)|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)$a^i*i in 1/9 | |
> let n/m=(take n.drop n.show$4*sum[2%i+3%i|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)(a^i*i)*(-1)^div i 2in '3':1/9 | |
> '3':let n/m=(++(2*n)/(2*m)).take n.drop n.show$4*sum[2%i+3%i|i<-[1,3..m],let a%i=div(1000^n)(a^i*i)*(-1)^div i 2]in 1/9 | |
> '3':let n/m=(take n.drop n.show$4*sum[2%i+3%i|i<-[1,3..m],let d=div;a%i=d(1000^n)(a^i*i)*(-1)^d i 2])++(2*n)/(2*m)in 1/9 | |
> let n/m=(take n.drop n.show$4*sum[2%i+3%i|i<-[1,3..m]])++(2*n)/(2*m)where a%i=div(1000^n)(a^i*i)*(-1)^div i 2in '3':1/9 | |
> '3':join[take n.drop n.show$4*sum[2%i+3%i|i<-[1,3..9*toInteger n],let a%i=div(1000^n)(a^i*i)*(-1)^div i 2]|n<-iterate(*2)1] | |
> '3':join[take n.drop n.show$4*sum[f 2+f 3|i<-[1,3..9*toInteger n],let f a=div(1000^n)(a^i*i)*(-1)^div i 2]|n<-iterate(*2)1] | |
> '3':let n/m=(take n.drop n.show$4*sum[2%i+3%i|i<-[1,3..m],let a%i=div(1000^n)(a^i*i)*(-1)^div i 2])++(2*n)/(2*m)in 1/9 -- Prelude-only | |
> '3':join[take n.drop n.show$4*sum[div(1000^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*toInteger n],a<-[2,3]]|n<-iterate(*2)1] | |
> '3':join[take n.drop n.show$4*sum[div(1000^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*toInteger n],a<-[2,3]]|n<-iterate(*2)1] | |
> '3':join[take n.drop n.show$4*sum[div(1000^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*toInteger n],a<-[2,3]]|n<-map(2^)[0..]] | |
> map(!!1)(transpose[show$4*sum[div(1000^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*n],a<-[2,3]]|n<-iterate(*2)1]) | |
> (!!1)<$>transpose[show$4*sum[div(1000^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*n],a<-[2,3]]|n<-iterate(*2)1] | |
> (!!1)<$>transpose[show$4*sum[div(1000^2^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[4*div(1000^2^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[4*div(1000^2^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[4*div(1000^2^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[4*div(1000^2^n)(a^i*i)*(-1)^div i 2|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$4*sum[(2-mod i 4)*div(1000^2^n)(a^i*i)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[(8-i`mod`4*4)*div(1000^2^n)(a^i*i)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[(8-i.&.3*4)*m(2^i*i)*m(3^i*i))|i<-[1,3..9*2^n]]|n<-[0..],let m=div(1000^2^n)] | |
> (!!1)<$>transpose[show$sum[1000^2^n`div`(a^i*i)*rem(8-i.&.3*4)8|i<-[1..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[(8-i.&.3*4)*div(1000^2^n)(a^i*i)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[(8-i.&.3*4)*div(1000^2^n)(a^i*i)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[1000^2^n`div`(a^i*i)*(8-i.&.3*4)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[100^2^n`div`(a^i*i)*(8-i.&.3*4)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] | |
> (!!1)<$>transpose[show$sum[10^2^n`div`(a^i*i)*(8-i.&.3*4)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[1..]] | |
> (!!1)<$>transpose[show$sum[10^2^n`div`(a^i*i)*(8-i.&.3*4)|i<-[1,3..9*2^n],a<-[2,3]]|n<-[0..]] -- TOO SLOW | |
> (!!4)<$>transpose[show$4*sum[(2-i.&.3)*div(1000^2^n)(a^i*i)|i<-[1,3..2^n],a<-[2,3]]|n<-[0..]] -- TOO SLOW | |
> (!!4)<$>transpose[show$4*sum[(2-i.&.3)*div(10^2^n)(a^i*i)|i<-[1,3..2^n],a<-[2,3]]|n<-[0..]] -- TOO SLOW | |
> [show(sum[(8-i.&.3*4)*div(1000^2^n)(a^i*i)|i<-[1,3..9*2^n],a<-[2,3]])!!n|n<-[0..]] -- EPIC SLOW | |
> [show(sum[(8-i.&.3*4)*div(1000^2^n)(a^i*i)|i<-[1,3..3^n],a<-[2,3]])!!n|n<-[0..]] -- EPIC SLOW | |
> (!!3)<$>transpose[show$foldr(\k a->2*10^2^n+a*k`div`(2*k+1))0[1..2^n]|n<-[0..]] -- BEST LEGAL ON LAMBDABOT pi_10 | |
> [show(sum[(8-i.&.3*4)*div(10^2^n)(a^i*i)|i<-[1,3..3^n],a<-[2,3]])!!n|n<-[0..]] -- EPIC SLOW | |
> [show(4*sum[(2-i.&.3)*div(10^2^n)(a^i*i)|i<-[1,3..3^n],a<-[2,3]])!!n|n<-[0..]] -- EPIC SLOW pi_11 | |
> [show(foldr(\k a->2*10^2^n+a*k`div`(2*k+1))0[1..4*2^n])!!n|n<-[0..]] -- EPIC SLOW pi_11 | |
> [show$sum[(8-i.&.3*4)*div(1000^2^n)(a^i*i)|i<-[1,3..3^n],a<-[2,3]]|n<-[0..]]!!9 -- ILLEGAL pi_9 | |
> [show$sum[(8-i.&.3*4)*div(10^2^n)(a^i*i)|i<-[1,3..3^n],a<-[2,3]]|n<-[0..]]!!9 -- ILLEGAL pi_9 | |
> [show(foldr(\k a->2*10^2^n+a*k`div`(2*k+1))0[1..4*2^n])|n<-[0..]]!!9 -- ILLEGAL pi_9EPIC SLOW pi_11 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment