Add test files for all Project Euler solutions
parent
e763b5a335
commit
b5b207a484
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.008 tools.test ;
|
||||
IN: project-euler.008.tests
|
||||
|
||||
[ 40824 ] [ euler008 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.009 tools.test ;
|
||||
IN: project-euler.009.tests
|
||||
|
||||
[ 31875000 ] [ euler009 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.010 tools.test ;
|
||||
IN: project-euler.010.tests
|
||||
|
||||
[ 142913828922 ] [ euler010 ] unit-test
|
|
@ -10,16 +10,19 @@ IN: project-euler.010
|
|||
|
||||
! The sum of the primes below 10 is 2 + 3 + 5 + 7 = 17.
|
||||
|
||||
! Find the sum of all the primes below one million.
|
||||
! Find the sum of all the primes below two million.
|
||||
|
||||
|
||||
! SOLUTION
|
||||
! --------
|
||||
|
||||
: euler010 ( -- answer )
|
||||
1000000 primes-upto sum ;
|
||||
2000000 primes-upto sum ;
|
||||
|
||||
! [ euler010 ] 100 ave-time
|
||||
! 14 ms run / 0 ms GC ave time - 100 trials
|
||||
! [ euler010 ] time
|
||||
! 266425 ms run / 10001 ms GC time
|
||||
|
||||
! TODO: this takes well over one minute now that they changed the problem to
|
||||
! two million instead of one. the primes vocab could use some improvements
|
||||
|
||||
MAIN: euler010
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.011 tools.test ;
|
||||
IN: project-euler.011.tests
|
||||
|
||||
[ 70600674 ] [ euler011 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.012 tools.test ;
|
||||
IN: project-euler.012.tests
|
||||
|
||||
[ 76576500 ] [ euler012 ] unit-test
|
|
@ -37,6 +37,6 @@ IN: project-euler.012
|
|||
8 [ dup nth-triangle tau* 500 < ] [ 1+ ] [ ] while nth-triangle ;
|
||||
|
||||
! [ euler012 ] 10 ave-time
|
||||
! 5413 ms run / 1 ms GC ave time - 10 trials
|
||||
! 6573 ms ave run time - 346.27 SD (10 trials)
|
||||
|
||||
MAIN: euler012
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.013 tools.test ;
|
||||
IN: project-euler.013.tests
|
||||
|
||||
[ 5537376230 ] [ euler013 ] unit-test
|
|
@ -228,6 +228,6 @@ PRIVATE>
|
|||
source-013 sum number>string 10 head string>number ;
|
||||
|
||||
! [ euler013 ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run time - 0.31 SD (100 trials)
|
||||
|
||||
MAIN: euler013
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.014 tools.test ;
|
||||
IN: project-euler.014.tests
|
||||
|
||||
[ 837799 ] [ euler014 ] unit-test
|
||||
[ 837799 ] [ euler014a ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.015 tools.test ;
|
||||
IN: project-euler.015.tests
|
||||
|
||||
[ 137846528820 ] [ euler015 ] unit-test
|
|
@ -28,6 +28,6 @@ PRIVATE>
|
|||
20 grid-paths ;
|
||||
|
||||
! [ euler015 ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run time - 0.2 SD (100 trials)
|
||||
|
||||
MAIN: euler015
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.016 tools.test ;
|
||||
IN: project-euler.016.tests
|
||||
|
||||
[ 1366 ] [ euler016 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.017 tools.test ;
|
||||
IN: project-euler.017.tests
|
||||
|
||||
[ 21124 ] [ euler017 ] unit-test
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.018 tools.test ;
|
||||
IN: project-euler.018.tests
|
||||
|
||||
[ 1074 ] [ euler018 ] unit-test
|
||||
[ 1074 ] [ euler018a ] unit-test
|
|
@ -74,7 +74,7 @@ PRIVATE>
|
|||
source-018 propagate-all first first ;
|
||||
|
||||
! [ euler018 ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run time - 0.29 SD (100 trials)
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -84,6 +84,6 @@ PRIVATE>
|
|||
source-018 max-path ;
|
||||
|
||||
! [ euler018a ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run time - 0.39 SD (100 trials)
|
||||
|
||||
MAIN: euler018a
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.019 tools.test ;
|
||||
IN: project-euler.019.tests
|
||||
|
||||
[ 171 ] [ euler019 ] unit-test
|
||||
[ 171 ] [ euler019a ] unit-test
|
|
@ -36,7 +36,7 @@ IN: project-euler.019
|
|||
] map concat [ zero? ] count ;
|
||||
|
||||
! [ euler019 ] 100 ave-time
|
||||
! 1 ms run / 0 ms GC ave time - 100 trials
|
||||
! 1 ms ave run time - 0.51 SD (100 trials)
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -61,6 +61,6 @@ PRIVATE>
|
|||
end-date start-date first-days [ zero? ] count ;
|
||||
|
||||
! [ euler019a ] 100 ave-time
|
||||
! 131 ms run / 3 ms GC ave time - 100 trials
|
||||
! 17 ms ave run time - 2.13 SD (100 trials)
|
||||
|
||||
MAIN: euler019
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.020 tools.test ;
|
||||
IN: project-euler.020.tests
|
||||
|
||||
[ 648 ] [ euler020 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.021 tools.test ;
|
||||
IN: project-euler.021.tests
|
||||
|
||||
[ 31626 ] [ euler021 ] unit-test
|
|
@ -33,6 +33,6 @@ IN: project-euler.021
|
|||
10000 [1,b] [ dup amicable? [ drop 0 ] unless ] sigma ;
|
||||
|
||||
! [ euler021 ] 100 ave-time
|
||||
! 328 ms run / 10 ms GC ave time - 100 trials
|
||||
! 335 ms ave run time - 18.63 SD (100 trials)
|
||||
|
||||
MAIN: euler021
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.022 tools.test ;
|
||||
IN: project-euler.022.tests
|
||||
|
||||
[ 871198282 ] [ euler022 ] unit-test
|
|
@ -40,6 +40,6 @@ PRIVATE>
|
|||
source-022 natural-sort name-scores sum ;
|
||||
|
||||
! [ euler022 ] 100 ave-time
|
||||
! 123 ms run / 4 ms GC ave time - 100 trials
|
||||
! 74 ms ave run time - 5.13 SD (100 trials)
|
||||
|
||||
MAIN: euler022
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.023 tools.test ;
|
||||
IN: project-euler.023.tests
|
||||
|
||||
[ 4179871 ] [ euler023 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.024 tools.test ;
|
||||
IN: project-euler.024.tests
|
||||
|
||||
[ 2783915460 ] [ euler024 ] unit-test
|
|
@ -26,6 +26,6 @@ IN: project-euler.024
|
|||
999999 10 permutation 10 digits>integer ;
|
||||
|
||||
! [ euler024 ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run time - 0.27 SD (100 trials)
|
||||
|
||||
MAIN: euler024
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.025 tools.test ;
|
||||
IN: project-euler.025.tests
|
||||
|
||||
[ 4782 ] [ euler025 ] unit-test
|
||||
[ 4782 ] [ euler025a ] unit-test
|
|
@ -55,7 +55,7 @@ PRIVATE>
|
|||
1000 digit-fib ;
|
||||
|
||||
! [ euler025 ] 10 ave-time
|
||||
! 5237 ms run / 72 ms GC ave time - 10 trials
|
||||
! 5345 ms ave run time - 105.91 SD (10 trials)
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -76,6 +76,6 @@ PRIVATE>
|
|||
1000 digit-fib* ;
|
||||
|
||||
! [ euler025a ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run time - 0.17 SD (100 trials)
|
||||
|
||||
MAIN: euler025a
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.026 tools.test ;
|
||||
IN: project-euler.026.tests
|
||||
|
||||
[ 983 ] [ euler026 ] unit-test
|
|
@ -66,6 +66,6 @@ PRIVATE>
|
|||
source-026 max-period drop denominator ;
|
||||
|
||||
! [ euler026 ] 100 ave-time
|
||||
! 724 ms run / 7 ms GC ave time - 100 trials
|
||||
! 290 ms ave run time - 19.2 SD (100 trials)
|
||||
|
||||
MAIN: euler026
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.027 tools.test ;
|
||||
IN: project-euler.027.tests
|
||||
|
||||
[ -59231 ] [ euler027 ] unit-test
|
|
@ -68,7 +68,7 @@ PRIVATE>
|
|||
source-027 max-consecutive drop product ;
|
||||
|
||||
! [ euler027 ] 100 ave-time
|
||||
! 687 ms run / 23 ms GC ave time - 100 trials
|
||||
! 111 ms ave run time - 6.07 SD (100 trials)
|
||||
|
||||
! TODO: generalize max-consecutive/max-product (from #26) into a new word
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.028 tools.test ;
|
||||
IN: project-euler.028.tests
|
||||
|
||||
[ 669171001 ] [ euler028 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.029 tools.test ;
|
||||
IN: project-euler.029.tests
|
||||
|
||||
[ 9183 ] [ euler029 ] unit-test
|
|
@ -32,6 +32,6 @@ IN: project-euler.029
|
|||
2 100 [a,b] dup cartesian-product [ first2 ^ ] map prune length ;
|
||||
|
||||
! [ euler029 ] 100 ave-time
|
||||
! 951 ms run / 12 ms GC ave time - 100 trials
|
||||
! 704 ms ave run time - 28.07 SD (100 trials)
|
||||
|
||||
MAIN: euler029
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.030 tools.test ;
|
||||
IN: project-euler.030.tests
|
||||
|
||||
[ 443839 ] [ euler030 ] unit-test
|
|
@ -41,6 +41,6 @@ PRIVATE>
|
|||
325537 [ dup sum-fifth-powers = ] filter sum 1- ;
|
||||
|
||||
! [ euler030 ] 100 ave-time
|
||||
! 2537 ms run / 125 ms GC ave time - 100 trials
|
||||
! 1700 ms ave run time - 64.84 SD (100 trials)
|
||||
|
||||
MAIN: euler030
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.031 tools.test ;
|
||||
IN: project-euler.031.tests
|
||||
|
||||
[ 73682 ] [ euler031 ] unit-test
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.032 tools.test ;
|
||||
IN: project-euler.032.tests
|
||||
|
||||
[ 45228 ] [ euler032 ] unit-test
|
||||
[ 45228 ] [ euler032a ] unit-test
|
|
@ -49,7 +49,7 @@ PRIVATE>
|
|||
source-032 [ valid? ] filter products prune sum ;
|
||||
|
||||
! [ euler032 ] 10 ave-time
|
||||
! 23922 ms run / 1505 ms GC ave time - 10 trials
|
||||
! 16361 ms ave run time - 417.8 SD (10 trials)
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -72,7 +72,7 @@ PRIVATE>
|
|||
: euler032a ( -- answer )
|
||||
source-032a [ mmp ] map [ pandigital? ] filter products prune sum ;
|
||||
|
||||
! [ euler032a ] 100 ave-time
|
||||
! 5978 ms run / 327 ms GC ave time - 100 trials
|
||||
! [ euler032a ] 10 ave-time
|
||||
! 2624 ms ave run time - 131.91 SD (10 trials)
|
||||
|
||||
MAIN: euler032a
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.033 tools.test ;
|
||||
IN: project-euler.033.tests
|
||||
|
||||
[ 100 ] [ euler033 ] unit-test
|
|
@ -50,6 +50,6 @@ PRIVATE>
|
|||
source-033 curious-fractions product denominator ;
|
||||
|
||||
! [ euler033 ] 100 ave-time
|
||||
! 5 ms run / 0 ms GC ave time - 100 trials
|
||||
! 7 ms ave run time - 1.31 SD (100 trials)
|
||||
|
||||
MAIN: euler033
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.034 tools.test ;
|
||||
IN: project-euler.034.tests
|
||||
|
||||
[ 40730 ] [ euler034 ] unit-test
|
|
@ -42,6 +42,6 @@ PRIVATE>
|
|||
3 2000000 [a,b] [ factorion? ] filter sum ;
|
||||
|
||||
! [ euler034 ] 10 ave-time
|
||||
! 15089 ms run / 725 ms GC ave time - 10 trials
|
||||
! 5506 ms ave run time - 144.0 SD (10 trials)
|
||||
|
||||
MAIN: euler034
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.035 tools.test ;
|
||||
IN: project-euler.035.tests
|
||||
|
||||
[ 55 ] [ euler035 ] unit-test
|
|
@ -53,7 +53,7 @@ PRIVATE>
|
|||
source-035 [ possible? ] filter [ circular? ] count ;
|
||||
|
||||
! [ euler035 ] 100 ave-time
|
||||
! 904 ms run / 86 ms GC ave time - 100 trials
|
||||
! 538 ms ave run time - 17.16 SD (100 trials)
|
||||
|
||||
! TODO: try using bit arrays or other methods outlined here:
|
||||
! http://home.comcast.net/~babdulbaki/Circular_Primes.html
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.036 tools.test ;
|
||||
IN: project-euler.036.tests
|
||||
|
||||
[ 872187 ] [ euler036 ] unit-test
|
|
@ -35,6 +35,6 @@ PRIVATE>
|
|||
1 1000000 2 <range> [ both-bases? ] filter sum ;
|
||||
|
||||
! [ euler036 ] 100 ave-time
|
||||
! 3891 ms run / 173 ms GC ave time - 100 trials
|
||||
! 1703 ms ave run time - 96.6 SD (100 trials)
|
||||
|
||||
MAIN: euler036
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.037 tools.test ;
|
||||
IN: project-euler.037.tests
|
||||
|
||||
[ 748317 ] [ euler037 ] unit-test
|
|
@ -47,6 +47,6 @@ PRIVATE>
|
|||
23 1000000 primes-between [ r-trunc? ] filter [ l-trunc? ] filter sum ;
|
||||
|
||||
! [ euler037 ] 100 ave-time
|
||||
! 768 ms run / 9 ms GC ave time - 100 trials
|
||||
! 130 ms ave run time - 6.27 SD (100 trials)
|
||||
|
||||
MAIN: euler037
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.038 tools.test ;
|
||||
IN: project-euler.038.tests
|
||||
|
||||
[ 932718654 ] [ euler038 ] unit-test
|
|
@ -51,6 +51,6 @@ PRIVATE>
|
|||
9123 9876 [a,b] [ concat-product ] map [ pandigital? ] filter supremum ;
|
||||
|
||||
! [ euler038 ] 100 ave-time
|
||||
! 37 ms run / 1 ms GC ave time - 100 trials
|
||||
! 11 ms ave run time - 1.5 SD (100 trials)
|
||||
|
||||
MAIN: euler038
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.039 tools.test ;
|
||||
IN: project-euler.039.tests
|
||||
|
||||
[ 840 ] [ euler039 ] unit-test
|
|
@ -60,6 +60,6 @@ PRIVATE>
|
|||
] with-scope ;
|
||||
|
||||
! [ euler039 ] 100 ave-time
|
||||
! 2 ms run / 0 ms GC ave time - 100 trials
|
||||
! 1 ms ave run time - 0.37 SD (100 trials)
|
||||
|
||||
MAIN: euler039
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.040 tools.test ;
|
||||
IN: project-euler.040.tests
|
||||
|
||||
[ 210 ] [ euler040 ] unit-test
|
|
@ -46,6 +46,6 @@ PRIVATE>
|
|||
[ swap nth-integer ] with map product ;
|
||||
|
||||
! [ euler040 ] 100 ave-time
|
||||
! 1002 ms run / 43 ms GC ave time - 100 trials
|
||||
! 444 ms ave run time - 23.64 SD (100 trials)
|
||||
|
||||
MAIN: euler040
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.041 tools.test ;
|
||||
IN: project-euler.041.tests
|
||||
|
||||
[ 7652413 ] [ euler041 ] unit-test
|
|
@ -35,6 +35,6 @@ IN: project-euler.041
|
|||
[ 10 digits>integer ] map [ prime? ] find nip ;
|
||||
|
||||
! [ euler041 ] 100 ave-time
|
||||
! 107 ms run / 7 ms GC ave time - 100 trials
|
||||
! 64 ms ave run time - 4.22 SD (100 trials)
|
||||
|
||||
MAIN: euler041
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.042 tools.test ;
|
||||
IN: project-euler.042.tests
|
||||
|
||||
[ 162 ] [ euler042 ] unit-test
|
||||
[ 162 ] [ euler042a ] unit-test
|
|
@ -50,7 +50,7 @@ PRIVATE>
|
|||
triangle-upto [ member? ] curry count ;
|
||||
|
||||
! [ euler042 ] 100 ave-time
|
||||
! 27 ms run / 1 ms GC ave time - 100 trials
|
||||
! 19 ms ave run time - 1.97 SD (100 trials)
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -69,6 +69,6 @@ PRIVATE>
|
|||
source-042 [ alpha-value ] map [ triangle? ] count ;
|
||||
|
||||
! [ euler042a ] 100 ave-time
|
||||
! 25 ms run / 1 ms GC ave time - 100 trials
|
||||
! 21 ms ave run time - 2.2 SD (100 trials)
|
||||
|
||||
MAIN: euler042a
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.043 tools.test ;
|
||||
IN: project-euler.043.tests
|
||||
|
||||
[ 16695334890 ] [ euler043 ] unit-test
|
||||
[ 16695334890 ] [ euler043a ] unit-test
|
|
@ -56,7 +56,7 @@ PRIVATE>
|
|||
[ interesting? ] filter [ 10 digits>integer ] map sum ;
|
||||
|
||||
! [ euler043 ] time
|
||||
! 125196 ms run / 19548 ms GC time
|
||||
! 104526 ms run / 42735 ms GC time
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -92,6 +92,6 @@ PRIVATE>
|
|||
interesting-pandigitals [ 10 digits>integer ] sigma ;
|
||||
|
||||
! [ euler043a ] 100 ave-time
|
||||
! 12 ms ave run time - 2.32 SD (100 trials)
|
||||
! 10 ms ave run time - 1.37 SD (100 trials)
|
||||
|
||||
MAIN: euler043a
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.044 tools.test ;
|
||||
IN: project-euler.044.tests
|
||||
|
||||
[ 5482660 ] [ euler044 ] unit-test
|
|
@ -40,7 +40,7 @@ PRIVATE>
|
|||
[ first2 sum-and-diff? ] filter [ first2 - abs ] map infimum ;
|
||||
|
||||
! [ euler044 ] 10 ave-time
|
||||
! 5727 ms ave run time - 1102.38 SD (10 trials)
|
||||
! 4996 ms ave run time - 87.46 SD (10 trials)
|
||||
|
||||
! TODO: this solution is ugly and not very efficient...find a better algorithm
|
||||
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.045 tools.test ;
|
||||
IN: project-euler.045.tests
|
||||
|
||||
[ 1533776805 ] [ euler045 ] unit-test
|
|
@ -44,6 +44,6 @@ PRIVATE>
|
|||
143 next-solution ;
|
||||
|
||||
! [ euler045 ] 100 ave-time
|
||||
! 18 ms run / 1 ms GC ave time - 100 trials
|
||||
! 12 ms ave run time - 1.71 SD (100 trials)
|
||||
|
||||
MAIN: euler045
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.046 tools.test ;
|
||||
IN: project-euler.046.tests
|
||||
|
||||
[ 5777 ] [ euler046 ] unit-test
|
|
@ -47,6 +47,6 @@ PRIVATE>
|
|||
9 disprove-conjecture ;
|
||||
|
||||
! [ euler046 ] 100 ave-time
|
||||
! 150 ms run / 2 ms GC ave time - 100 trials
|
||||
! 37 ms ave run time - 3.39 SD (100 trials)
|
||||
|
||||
MAIN: euler046
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.047 tools.test ;
|
||||
IN: project-euler.047.tests
|
||||
|
||||
[ 134043 ] [ euler047 ] unit-test
|
||||
[ 134043 ] [ euler047a ] unit-test
|
|
@ -49,7 +49,7 @@ PRIVATE>
|
|||
4 646 consecutive ;
|
||||
|
||||
! [ euler047 ] time
|
||||
! 542708 ms run / 60548 ms GC time
|
||||
! 344688 ms run / 20727 ms GC time
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -88,7 +88,7 @@ PRIVATE>
|
|||
4 200000 consecutive-under ;
|
||||
|
||||
! [ euler047a ] 100 ave-time
|
||||
! 503 ms run / 5 ms GC ave time - 100 trials
|
||||
! 331 ms ave run time - 19.14 SD (100 trials)
|
||||
|
||||
! TODO: I don't like that you have to specify the upper bound, maybe try making
|
||||
! this lazy so it could also short-circuit when it finds the answer?
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.048 tools.test ;
|
||||
IN: project-euler.048.tests
|
||||
|
||||
[ 9110846700 ] [ euler048 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.052 tools.test ;
|
||||
IN: project-euler.052.tests
|
||||
|
||||
[ 142857 ] [ euler052 ] unit-test
|
|
@ -46,6 +46,6 @@ PRIVATE>
|
|||
6 123456 next-all-same ;
|
||||
|
||||
! [ euler052 ] 100 ave-time
|
||||
! 403 ms run / 7 ms GC ave time - 100 trials
|
||||
! 92 ms ave run time - 6.29 SD (100 trials)
|
||||
|
||||
MAIN: euler052
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.053 tools.test ;
|
||||
IN: project-euler.053.tests
|
||||
|
||||
[ 4075 ] [ euler053 ] unit-test
|
|
@ -30,6 +30,6 @@ IN: project-euler.053
|
|||
23 100 [a,b] [ dup [ nCk 1000000 > ] with count ] sigma ;
|
||||
|
||||
! [ euler053 ] 100 ave-time
|
||||
! 64 ms run / 2 ms GC ave time - 100 trials
|
||||
! 52 ms ave run time - 4.44 SD (100 trials)
|
||||
|
||||
MAIN: euler053
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.055 tools.test ;
|
||||
IN: project-euler.055.tests
|
||||
|
||||
[ 249 ] [ euler055 ] unit-test
|
|
@ -64,6 +64,6 @@ PRIVATE>
|
|||
10000 [ lychrel? ] count ;
|
||||
|
||||
! [ euler055 ] 100 ave-time
|
||||
! 1370 ms run / 31 ms GC ave time - 100 trials
|
||||
! 478 ms ave run time - 30.63 SD (100 trials)
|
||||
|
||||
MAIN: euler055
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.056 tools.test ;
|
||||
IN: project-euler.056.tests
|
||||
|
||||
[ 972 ] [ euler056 ] unit-test
|
|
@ -26,6 +26,6 @@ IN: project-euler.056
|
|||
[ first2 ^ number>digits sum ] map supremum ;
|
||||
|
||||
! [ euler056 ] 100 ave-time
|
||||
! 33 ms run / 1 ms GC ave time - 100 trials
|
||||
! 22 ms ave run time - 2.13 SD (100 trials)
|
||||
|
||||
MAIN: euler056
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.059 tools.test ;
|
||||
IN: project-euler.059.tests
|
||||
|
||||
[ 107359 ] [ euler059 ] unit-test
|
|
@ -87,6 +87,6 @@ PRIVATE>
|
|||
source-059 dup 3 crack-key decrypt sum ;
|
||||
|
||||
! [ euler059 ] 100 ave-time
|
||||
! 13 ms run / 0 ms GC ave time - 100 trials
|
||||
! 8 ms ave run time - 1.4 SD (100 trials)
|
||||
|
||||
MAIN: euler059
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
USING: project-euler.067 tools.test ;
|
||||
IN: project-euler.067.tests
|
||||
|
||||
[ 7273 ] [ euler067 ] unit-test
|
||||
[ 7273 ] [ euler067a ] unit-test
|
|
@ -47,7 +47,7 @@ PRIVATE>
|
|||
source-067 propagate-all first first ;
|
||||
|
||||
! [ euler067 ] 100 ave-time
|
||||
! 18 ms run / 0 ms GC time
|
||||
! 20 ms ave run time - 2.12 SD (100 trials)
|
||||
|
||||
|
||||
! ALTERNATE SOLUTIONS
|
||||
|
@ -57,6 +57,6 @@ PRIVATE>
|
|||
source-067 max-path ;
|
||||
|
||||
! [ euler067a ] 100 ave-time
|
||||
! 14 ms run / 0 ms GC ave time - 100 trials
|
||||
! 21 ms ave run time - 2.65 SD (100 trials)
|
||||
|
||||
MAIN: euler067a
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.075 tools.test ;
|
||||
IN: project-euler.075.tests
|
||||
|
||||
[ 214954 ] [ euler075 ] unit-test
|
|
@ -26,7 +26,7 @@ IN: project-euler.075
|
|||
|
||||
! 120 cm: (30,40,50), (20,48,52), (24,45,51)
|
||||
|
||||
! Given that L is the length of the wire, for how many values of L ≤ 1,000,000
|
||||
! Given that L is the length of the wire, for how many values of L ≤ 2,000,000
|
||||
! can exactly one right angle triangle be formed?
|
||||
|
||||
|
||||
|
@ -36,9 +36,9 @@ IN: project-euler.075
|
|||
! Algorithm adapted from http://mathworld.wolfram.com/PythagoreanTriple.html
|
||||
! Identical implementation as problem #39
|
||||
|
||||
! Basically, this makes an array of 1000000 zeros, recursively creates
|
||||
! Basically, this makes an array of 2000000 zeros, recursively creates
|
||||
! primitive triples using the three transforms and then increments the array at
|
||||
! index [a+b+c] by one for each triple's sum AND its multiples under 1000000
|
||||
! index [a+b+c] by one for each triple's sum AND its multiples under 2000000
|
||||
! (to account for non-primitive triples). The answer is just the total number
|
||||
! of indexes that are equal to one.
|
||||
|
||||
|
@ -69,10 +69,10 @@ PRIVATE>
|
|||
|
||||
: euler075 ( -- answer )
|
||||
[
|
||||
1000000 count-perimeters p-count get [ 1 = ] count
|
||||
2000000 count-perimeters p-count get [ 1 = ] count
|
||||
] with-scope ;
|
||||
|
||||
! [ euler075 ] 100 ave-time
|
||||
! 1873 ms run / 123 ms GC ave time - 100 trials
|
||||
! [ euler075 ] 10 ave-time
|
||||
! 3341 ms ave run timen - 157.77 SD (10 trials)
|
||||
|
||||
MAIN: euler075
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.076 tools.test ;
|
||||
IN: project-euler.076.tests
|
||||
|
||||
[ 190569291 ] [ euler076 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.079 tools.test ;
|
||||
IN: project-euler.079.tests
|
||||
|
||||
[ 73162890 ] [ euler079 ] unit-test
|
|
@ -58,7 +58,7 @@ PRIVATE>
|
|||
source-079 >edges topological-sort 10 digits>integer ;
|
||||
|
||||
! [ euler079 ] 100 ave-time
|
||||
! 1 ms ave run time - 1.41 SD (100 trials)
|
||||
! 1 ms ave run time - 0.46 SD (100 trials)
|
||||
|
||||
! TODO: prune and diff are relatively slow; topological sort could be
|
||||
! cleaned up and generalized much better, but it works for this problem
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.092 tools.test ;
|
||||
IN: project-euler.092.tests
|
||||
|
||||
[ 8581146 ] [ euler092 ] unit-test
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.097 tools.test ;
|
||||
IN: project-euler.097.tests
|
||||
|
||||
[ 8739992577 ] [ euler097 ] unit-test
|
|
@ -26,6 +26,6 @@ IN: project-euler.097
|
|||
2 7830457 10 10 ^ ^mod 28433 * 10 10 ^ mod 1+ ;
|
||||
|
||||
! [ euler097 ] 100 ave-time
|
||||
! 0 ms run / 0 ms GC ave time - 100 trials
|
||||
! 0 ms ave run timen - 0.22 SD (100 trials)
|
||||
|
||||
MAIN: euler097
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.100 tools.test ;
|
||||
IN: project-euler.100.tests
|
||||
|
||||
[ 756872327473 ] [ euler100 ] unit-test
|
|
@ -28,9 +28,9 @@ IN: project-euler.100
|
|||
[ dup dup 1- * 2 * 10 24 ^ <= ]
|
||||
[ tuck 6 * swap - 2 - ] [ ] while nip ;
|
||||
|
||||
! TODO: solution is incredibly slow (>30 minutes) and needs generalization
|
||||
! TODO: solution needs generalization
|
||||
|
||||
! [ euler100 ] time
|
||||
! ? ms run time
|
||||
! [ euler100 ] 100 ave-time
|
||||
! 0 ms ave run time - 0.14 SD (100 trials)
|
||||
|
||||
MAIN: euler100
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.116 tools.test ;
|
||||
IN: project-euler.116.tests
|
||||
|
||||
[ 20492570929 ] [ euler116 ] unit-test
|
|
@ -55,6 +55,6 @@ PRIVATE>
|
|||
50 (euler116) ;
|
||||
|
||||
! [ euler116 ] 100 ave-time
|
||||
! 0 ms run time - 100 trials
|
||||
! 0 ms ave run time - 0.34 SD (100 trials)
|
||||
|
||||
MAIN: euler116
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.117 tools.test ;
|
||||
IN: project-euler.117.tests
|
||||
|
||||
[ 100808458960497 ] [ euler117 ] unit-test
|
|
@ -42,6 +42,6 @@ PRIVATE>
|
|||
50 (euler117) ;
|
||||
|
||||
! [ euler117 ] 100 ave-time
|
||||
! 0 ms run time - 100 trials
|
||||
! 0 ms ave run time - 0.29 SD (100 trials)
|
||||
|
||||
MAIN: euler117
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.134 tools.test ;
|
||||
IN: project-euler.134.tests
|
||||
|
||||
[ 18613426663617118 ] [ euler134 ] unit-test
|
|
@ -43,6 +43,6 @@ PRIVATE>
|
|||
[ [ s + ] keep ] leach drop ;
|
||||
|
||||
! [ euler134 ] 10 ave-time
|
||||
! 2430 ms run / 36 ms GC ave time - 10 trials
|
||||
! 933 ms ave run timen - 19.58 SD (10 trials)
|
||||
|
||||
MAIN: euler134
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
USING: project-euler.148 tools.test ;
|
||||
IN: project-euler.148.tests
|
||||
|
||||
[ 2129970655314432 ] [ euler148 ] unit-test
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue