Use [0,b) and iota where appropriate
parent
9981f6534f
commit
e59e051c74
|
|
@ -47,14 +47,14 @@ PRIVATE>
|
||||||
|
|
||||||
|
|
||||||
: euler001b ( -- answer )
|
: euler001b ( -- answer )
|
||||||
1000 iota [ [ 5 mod ] [ 3 mod ] bi [ 0 = ] either? ] filter sum ;
|
1000 [0,b) [ [ 5 mod ] [ 3 mod ] bi [ 0 = ] either? ] filter sum ;
|
||||||
|
|
||||||
! [ euler001b ] 100 ave-time
|
! [ euler001b ] 100 ave-time
|
||||||
! 0 ms ave run time - 0.06 SD (100 trials)
|
! 0 ms ave run time - 0.06 SD (100 trials)
|
||||||
|
|
||||||
|
|
||||||
: euler001c ( -- answer )
|
: euler001c ( -- answer )
|
||||||
1000 iota [ { 3 5 } [ divisor? ] with any? ] filter sum ;
|
1000 [0,b) [ { 3 5 } [ divisor? ] with any? ] filter sum ;
|
||||||
|
|
||||||
! [ euler001c ] 100 ave-time
|
! [ euler001c ] 100 ave-time
|
||||||
! 0 ms ave run time - 0.06 SD (100 trials)
|
! 0 ms ave run time - 0.06 SD (100 trials)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (c) 2007 Samuel Tardieu, Aaron Schaefer.
|
! Copyright (c) 2007 Samuel Tardieu, Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math project-euler.common sequences ;
|
USING: kernel math math.ranges project-euler.common sequences ;
|
||||||
IN: project-euler.018
|
IN: project-euler.018
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=18
|
! http://projecteuler.net/index.php?section=problems&id=18
|
||||||
|
|
@ -66,7 +66,7 @@ IN: project-euler.018
|
||||||
91 71 52 38 17 14 91 43 58 50 27 29 48
|
91 71 52 38 17 14 91 43 58 50 27 29 48
|
||||||
63 66 04 68 89 53 67 30 73 16 69 87 40 31
|
63 66 04 68 89 53 67 30 73 16 69 87 40 31
|
||||||
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
|
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
|
||||||
} 15 iota [ 1+ cut swap ] map nip ;
|
} 15 [1,b] [ cut swap ] map nip ;
|
||||||
|
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
! Copyright (c) 2008 Aaron Schaefer.
|
! Copyright (c) 2008 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math math.primes project-euler.common sequences
|
USING: kernel math math.primes math.ranges project-euler.common sequences ;
|
||||||
project-euler.common ;
|
|
||||||
IN: project-euler.027
|
IN: project-euler.027
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=27
|
! http://projecteuler.net/index.php?section=problems&id=27
|
||||||
|
|
@ -47,7 +46,7 @@ IN: project-euler.027
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
||||||
: source-027 ( -- seq )
|
: source-027 ( -- seq )
|
||||||
1000 [ prime? ] filter [ dup [ neg ] map append ] keep
|
1000 [0,b) [ prime? ] filter [ dup [ neg ] map append ] keep
|
||||||
cartesian-product [ first2 < ] filter ;
|
cartesian-product [ first2 < ] filter ;
|
||||||
|
|
||||||
: quadratic ( b a n -- m )
|
: quadratic ( b a n -- m )
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (c) 2008 Aaron Schaefer.
|
! Copyright (c) 2008 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math math.functions project-euler.common sequences ;
|
USING: kernel math math.functions math.ranges project-euler.common sequences ;
|
||||||
IN: project-euler.030
|
IN: project-euler.030
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=30
|
! http://projecteuler.net/index.php?section=problems&id=30
|
||||||
|
|
@ -38,7 +38,7 @@ IN: project-euler.030
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: euler030 ( -- answer )
|
: euler030 ( -- answer )
|
||||||
325537 iota [ dup sum-fifth-powers = ] filter sum 1- ;
|
325537 [0,b) [ dup sum-fifth-powers = ] filter sum 1- ;
|
||||||
|
|
||||||
! [ euler030 ] 100 ave-time
|
! [ euler030 ] 100 ave-time
|
||||||
! 1700 ms ave run time - 64.84 SD (100 trials)
|
! 1700 ms ave run time - 64.84 SD (100 trials)
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,7 @@ IN: project-euler.032
|
||||||
|
|
||||||
: source-032 ( -- seq )
|
: source-032 ( -- seq )
|
||||||
9 factorial iota [
|
9 factorial iota [
|
||||||
9 permutation [ 1+ ] map 10 digits>integer
|
9 permutation [ 1 + ] map 10 digits>integer
|
||||||
] map ;
|
] map ;
|
||||||
|
|
||||||
: 1and4 ( n -- ? )
|
: 1and4 ( n -- ? )
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (c) 2008 Aaron Schaefer.
|
! Copyright (c) 2008 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math math.parser project-euler.common sequences ;
|
USING: kernel math math.parser math.ranges project-euler.common sequences ;
|
||||||
IN: project-euler.055
|
IN: project-euler.055
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=55
|
! http://projecteuler.net/index.php?section=problems&id=55
|
||||||
|
|
@ -61,7 +61,7 @@ IN: project-euler.055
|
||||||
PRIVATE>
|
PRIVATE>
|
||||||
|
|
||||||
: euler055 ( -- answer )
|
: euler055 ( -- answer )
|
||||||
10000 iota [ lychrel? ] count ;
|
10000 [0,b) [ lychrel? ] count ;
|
||||||
|
|
||||||
! [ euler055 ] 100 ave-time
|
! [ euler055 ] 100 ave-time
|
||||||
! 478 ms ave run time - 30.63 SD (100 trials)
|
! 478 ms ave run time - 30.63 SD (100 trials)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (c) 2008 Samuel Tardieu
|
! Copyright (c) 2008 Samuel Tardieu
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math math.functions math.parser sequences project-euler.common ;
|
USING: kernel math math.functions math.parser math.ranges project-euler.common
|
||||||
|
sequences ;
|
||||||
IN: project-euler.057
|
IN: project-euler.057
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=57
|
! http://projecteuler.net/index.php?section=problems&id=57
|
||||||
|
|
@ -35,7 +36,7 @@ IN: project-euler.057
|
||||||
>fraction [ number>string length ] bi@ > ; inline
|
>fraction [ number>string length ] bi@ > ; inline
|
||||||
|
|
||||||
: euler057 ( -- answer )
|
: euler057 ( -- answer )
|
||||||
0 1000 iota [ drop 2 + recip dup 1+ longer-numerator? ] count nip ;
|
0 1000 [0,b) [ drop 2 + recip dup 1 + longer-numerator? ] count nip ;
|
||||||
|
|
||||||
! [ euler057 ] 100 ave-time
|
! [ euler057 ] 100 ave-time
|
||||||
! 1728 ms ave run time - 80.81 SD (100 trials)
|
! 1728 ms ave run time - 80.81 SD (100 trials)
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
! Copyright (c) 2008 Eric Mertens.
|
! Copyright (c) 2008 Eric Mertens.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: hints kernel locals math math.order sequences sequences.private project-euler.common ;
|
USING: hints kernel locals math math.order math.ranges project-euler.common
|
||||||
|
sequences sequences.private ;
|
||||||
IN: project-euler.150
|
IN: project-euler.150
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=150
|
! http://projecteuler.net/index.php?section=problems&id=150
|
||||||
|
|
@ -50,13 +51,13 @@ IN: project-euler.150
|
||||||
615949 * 797807 + 20 2^ rem dup 19 2^ - ; inline
|
615949 * 797807 + 20 2^ rem dup 19 2^ - ; inline
|
||||||
|
|
||||||
: sums-triangle ( -- seq )
|
: sums-triangle ( -- seq )
|
||||||
0 1000 iota [ 1+ [ next ] replicate partial-sums ] map nip ;
|
0 1000 [1,b] [ [ next ] replicate partial-sums ] map nip ;
|
||||||
|
|
||||||
:: (euler150) ( m -- n )
|
:: (euler150) ( m -- n )
|
||||||
[let | table [ sums-triangle ] |
|
[let | table [ sums-triangle ] |
|
||||||
m [| x |
|
m [| x |
|
||||||
x 1+ [| y |
|
x 1+ [| y |
|
||||||
m x - iota [| z |
|
m x - [0,b) [| z |
|
||||||
x z + table nth-unsafe
|
x z + table nth-unsafe
|
||||||
[ y z + 1+ swap nth-unsafe ]
|
[ y z + 1+ swap nth-unsafe ]
|
||||||
[ y swap nth-unsafe ] bi -
|
[ y swap nth-unsafe ] bi -
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue