Added first version of helper tool
This commit is contained in:
11
ProjectEuler/024/desc.yml
Normal file
11
ProjectEuler/024/desc.yml
Normal file
@ -0,0 +1,11 @@
|
||||
title: What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
|
||||
url: http://projecteuler.net/problem=24
|
||||
|
||||
desc: |
|
||||
A permutation is an ordered arrangement of objects. For example, 3124 is one possible permutation of the digits 1, 2, 3 and 4. If all of the permutations are listed numerically or alphabetically, we call it lexicographic order. The lexicographic permutations of 0, 1 and 2 are:
|
||||
012 021 102 120 201 210
|
||||
What is the millionth lexicographic permutation of the digits 0, 1, 2, 3, 4, 5, 6, 7, 8 and 9?
|
||||
todo: Improve algorithm -
|
||||
solution: Bruteforce
|
||||
|
||||
solutions:
|
25
ProjectEuler/024/solve.php
Normal file
25
ProjectEuler/024/solve.php
Normal file
@ -0,0 +1,25 @@
|
||||
<?php
|
||||
function fac($number) {
|
||||
if($number == 1)
|
||||
return 1;
|
||||
return $number * fac($number-1);
|
||||
}
|
||||
$result = array(0,0,0,0,0,0,0,0,0,0);
|
||||
|
||||
$endsteps = 1000000;
|
||||
$cstep = 0;
|
||||
$cdigit = 9;
|
||||
while($cdigit != 0) {
|
||||
|
||||
do{
|
||||
$result[9-$cdigit]++;
|
||||
$cstep += fac($cdigit);
|
||||
} while ($cstep < $endsteps) ;
|
||||
|
||||
echo "Done with $cdigit - steps:$cstep\n";
|
||||
$cdigit--;
|
||||
}
|
||||
echo "DONE!";
|
||||
print_r($result);
|
||||
echo " - ".$cstep ."\n";
|
||||
echo "Result: 2783915460";
|
Reference in New Issue
Block a user