Solution to Project Euler problem 53
parent
875a6fdc6e
commit
b8dfb89771
|
@ -0,0 +1,35 @@
|
||||||
|
! Copyright (c) 2008 Aaron Schaefer.
|
||||||
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
|
USING: combinators.lib kernel math math.combinatorics math.ranges sequences ;
|
||||||
|
IN: project-euler.053
|
||||||
|
|
||||||
|
! http://projecteuler.net/index.php?section=problems&id=53
|
||||||
|
|
||||||
|
! DESCRIPTION
|
||||||
|
! -----------
|
||||||
|
|
||||||
|
! There are exactly ten ways of selecting three from five, 12345:
|
||||||
|
|
||||||
|
! 123, 124, 125, 134, 135, 145, 234, 235, 245, and 345
|
||||||
|
|
||||||
|
! In combinatorics, we use the notation, 5C3 = 10.
|
||||||
|
|
||||||
|
! In general,
|
||||||
|
! nCr = n! / r! * (n - r)!
|
||||||
|
! where r ≤ n, n! = n * (n − 1) * ... * 3 * 2 * 1, and 0! = 1.
|
||||||
|
|
||||||
|
! It is not until n = 23, that a value exceeds one-million: 23C10 = 1144066.
|
||||||
|
|
||||||
|
! How many values of nCr, for 1 ≤ n ≤ 100, are greater than one-million?
|
||||||
|
|
||||||
|
|
||||||
|
! SOLUTION
|
||||||
|
! --------
|
||||||
|
|
||||||
|
: euler053 ( -- answer )
|
||||||
|
23 100 [a,b] [ dup [ nCk ] with map [ 1000000 > ] count ] sigma ;
|
||||||
|
|
||||||
|
! [ euler053 ] 100 ave-time
|
||||||
|
! 64 ms run / 2 ms GC ave time - 100 trials
|
||||||
|
|
||||||
|
MAIN: euler053
|
|
@ -13,9 +13,9 @@ USING: definitions io io.files kernel math math.parser project-euler.ave-time
|
||||||
project-euler.033 project-euler.034 project-euler.035 project-euler.036
|
project-euler.033 project-euler.034 project-euler.035 project-euler.036
|
||||||
project-euler.037 project-euler.038 project-euler.039 project-euler.040
|
project-euler.037 project-euler.038 project-euler.039 project-euler.040
|
||||||
project-euler.041 project-euler.042 project-euler.043 project-euler.044
|
project-euler.041 project-euler.042 project-euler.043 project-euler.044
|
||||||
project-euler.048 project-euler.052 project-euler.067 project-euler.075
|
project-euler.048 project-euler.052 project-euler.053 project-euler.067
|
||||||
project-euler.079 project-euler.097 project-euler.134 project-euler.169
|
project-euler.075 project-euler.079 project-euler.097 project-euler.134
|
||||||
project-euler.173 project-euler.175 ;
|
project-euler.169 project-euler.173 project-euler.175 ;
|
||||||
IN: project-euler
|
IN: project-euler
|
||||||
|
|
||||||
<PRIVATE
|
<PRIVATE
|
||||||
|
|
Loading…
Reference in New Issue