Alternate solution to Project Euler problem 2
parent
ab7849f711
commit
827faa205c
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (c) 2007 Aaron Schaefer.
|
! Copyright (c) 2007 Aaron Schaefer.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: kernel math sequences ;
|
USING: kernel math sequences shuffle ;
|
||||||
IN: project-euler.002
|
IN: project-euler.002
|
||||||
|
|
||||||
! http://projecteuler.net/index.php?section=problems&id=2
|
! http://projecteuler.net/index.php?section=problems&id=2
|
||||||
|
@ -35,4 +35,18 @@ PRIVATE>
|
||||||
! [ euler002 ] 100 ave-time
|
! [ euler002 ] 100 ave-time
|
||||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||||
|
|
||||||
MAIN: euler002
|
|
||||||
|
! ALTERNATE SOLUTIONS
|
||||||
|
! -------------------
|
||||||
|
|
||||||
|
: fib-upto* ( n -- seq )
|
||||||
|
0 1 [ pick over >= ] [ tuck + dup ] [ ] unfold 3nip
|
||||||
|
1 head-slice* { 0 1 } swap append ;
|
||||||
|
|
||||||
|
: euler002a ( -- answer )
|
||||||
|
1000000 fib-upto* [ even? ] subset sum ;
|
||||||
|
|
||||||
|
! [ euler002a ] 100 ave-time
|
||||||
|
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||||
|
|
||||||
|
MAIN: euler002a
|
||||||
|
|
Loading…
Reference in New Issue