]> gitweb.factorcode.org Git - factor.git/blob - extra/project-euler/024/024.factor
core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota...
[factor.git] / extra / project-euler / 024 / 024.factor
1 ! Copyright (c) 2008 Aaron Schaefer.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: kernel math.combinatorics project-euler.common
4 sequences ;
5 IN: project-euler.024
6
7 ! http://projecteuler.net/index.php?section=problems&id=24
8
9 ! DESCRIPTION
10 ! -----------
11
12 ! A permutation is an ordered arrangement of objects. For example, 3124 is one
13 ! possible permutation of the digits 1, 2, 3 and 4. If all of the permutations
14 ! are listed numerically or alphabetically, we call it lexicographic order. The
15 ! lexicographic permutations of 0, 1 and 2 are:
16
17 !     012   021   102   120   201   210
18
19 ! What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4,
20 ! 5, 6, 7, 8 and 9?
21
22
23 ! SOLUTION
24 ! --------
25
26 : euler024 ( -- answer )
27     999999 10 <iota> permutation digits>number ;
28
29 ! [ euler024 ] 100 ave-time
30 ! 0 ms ave run time - 0.27 SD (100 trials)
31
32 SOLUTION: euler024