Cleanup formatting of Project Euler problem 215
parent
05d991ab74
commit
8e155a8306
|
@ -1,4 +1,4 @@
|
|||
USING: project-euler.215 tools.test ;
|
||||
USING: project-euler.215 project-euler.215.private tools.test ;
|
||||
IN: project-euler.215.tests
|
||||
|
||||
[ 8 ] [ 9 3 solve ] unit-test
|
||||
|
|
|
@ -1,6 +1,33 @@
|
|||
! Copyright (c) 2008 Eric Mertens.
|
||||
! See http://factorcode.org/license.txt for BSD license.
|
||||
USING: accessors kernel locals math ;
|
||||
IN: project-euler.215
|
||||
|
||||
! http://projecteuler.net/index.php?section=problems&id=215
|
||||
|
||||
! DESCRIPTION
|
||||
! -----------
|
||||
|
||||
! Consider the problem of building a wall out of 2x1 and 3x1 bricks
|
||||
! (horizontalvertical dimensions) such that, for extra strength, the gaps
|
||||
! between horizontally-adjacent bricks never line up in consecutive layers,
|
||||
! i.e. never form a "running crack".
|
||||
|
||||
! For example, the following 93 wall is not acceptable due to the running crack
|
||||
! shown in red:
|
||||
|
||||
! See problem site for image...
|
||||
|
||||
! There are eight ways of forming a crack-free 9x3 wall, written W(9,3) = 8.
|
||||
|
||||
! Calculate W(32,10).
|
||||
|
||||
|
||||
! SOLUTION
|
||||
! --------
|
||||
|
||||
<PRIVATE
|
||||
|
||||
TUPLE: block two three ;
|
||||
TUPLE: end { ways integer } ;
|
||||
|
||||
|
@ -11,7 +38,8 @@ C: <end> end
|
|||
|
||||
: failure? ( t -- ? ) ways>> 0 = ; inline
|
||||
|
||||
: choice ( t p q -- t t ) [ [ two>> ] [ three>> ] bi ] 2dip bi* ; inline
|
||||
: choice ( t p q -- t t )
|
||||
[ [ two>> ] [ three>> ] bi ] 2dip bi* ; inline
|
||||
|
||||
GENERIC: merge ( t t -- t )
|
||||
GENERIC# block-merge 1 ( t t -- t )
|
||||
|
@ -53,4 +81,12 @@ M: end total ways>> ;
|
|||
: solve ( width height -- ways )
|
||||
[ first-row ] dip 1- [ next-row ] times total ;
|
||||
|
||||
: euler215 ( -- ways ) 32 10 solve ;
|
||||
PRIVATE>
|
||||
|
||||
: euler215 ( -- answer )
|
||||
32 10 solve ;
|
||||
|
||||
! [ euler215 ] 100 ave-time
|
||||
! 208 ms ave run time - 9.06 SD (100 trials)
|
||||
|
||||
MAIN: euler215
|
||||
|
|
|
@ -20,7 +20,7 @@ USING: definitions io io.files kernel math math.parser
|
|||
project-euler.097 project-euler.100 project-euler.116 project-euler.117
|
||||
project-euler.134 project-euler.148 project-euler.150 project-euler.151
|
||||
project-euler.164 project-euler.169 project-euler.173 project-euler.175
|
||||
project-euler.186 project-euler.190 ;
|
||||
project-euler.186 project-euler.190 project-euler.215 ;
|
||||
IN: project-euler
|
||||
|
||||
<PRIVATE
|
||||
|
|
Loading…
Reference in New Issue