]> gitweb.factorcode.org Git - factor.git/blobdiff - extra/project-euler/076/076.factor
factor: trim using lists
[factor.git] / extra / project-euler / 076 / 076.factor
index 3530f2163ac32e038e624f33b336faff1ecb475f..23ceb6fe449a32530ca9a0ee94b40b06fe49b411 100644 (file)
@@ -1,7 +1,6 @@
 ! Copyright (c) 2008 Eric Mertens.
 ! See http://factorcode.org/license.txt for BSD license.
-USING: arrays assocs combinators kernel locals math math.order math.ranges
-    sequences ;
+USING: arrays assocs kernel math math.order ranges sequences project-euler.common ;
 IN: project-euler.076
 
 ! http://projecteuler.net/index.php?section=problems&id=76
@@ -26,7 +25,7 @@ IN: project-euler.076
 <PRIVATE
 
 : init ( n -- table )
-    [1,b] [ 0 2array 0 ] H{ } map>assoc
+    [1..b] [ 0 2array 0 ] H{ } map>assoc
     1 { 0 0 } pick set-at ;
 
 : use ( n i -- n i )
@@ -36,18 +35,18 @@ IN: project-euler.076
     over zero? [
         3drop
     ] [
-        [ [ 1-  2array ] dip at     ]
+        [ [ 1 -  2array ] dip at     ]
         [ [ use 2array ] dip at +   ]
         [ [     2array ] dip set-at ] 3tri
     ] if ;
 
 :: each-subproblem ( n quot -- )
-    n [1,b] [ dup [1,b] quot with each ] each ; inline
+    n [1..b] [ dup [1..b] quot with each ] each ; inline
 
 : (euler076) ( n -- m )
     dup init
     [ [ ways ] curry each-subproblem ]
-    [ [ dup 2array ] dip at 1- ] 2bi ;
+    [ [ dup 2array ] dip at 1 - ] 2bi ;
 
 PRIVATE>
 
@@ -55,6 +54,6 @@ PRIVATE>
     100 (euler076) ;
 
 ! [ euler076 ] 100 ave-time
-! 704 ms run time - 100 trials
+! 560 ms ave run time - 17.74 SD (100 trials)
 
-MAIN: euler076
+SOLUTION: euler076