Alternate solution to Project Euler problem 2

db4
Aaron Schaefer 2008-01-18 20:07:41 -05:00
parent ab7849f711
commit 827faa205c
1 changed files with 16 additions and 2 deletions

View File

@ -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