Restructuring

This commit is contained in:
2024-07-01 13:49:44 +00:00
parent f11b705ef0
commit 8d60e1b905
194 changed files with 1296 additions and 112 deletions

View File

@ -0,0 +1,13 @@
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?
solution: Use factoring
solutions:
solve.php:
desc: Basic Solution
language: php

View File

@ -0,0 +1,26 @@
<?php
define('NUM_PERMUTATION',1000000);
define('DIGITS',9);
$target = NUM_PERMUTATION - 1;
$digits = range(0, 9);
$permus = array(1 => 1);
for ($i = 2; $i <= 9; $i++) {
$permus[$i] = $permus[$i - 1] * $i;
}
$permus = array_reverse($permus);
$values = array();
foreach ($permus as $n) {
$values[] = floor($target / $n);
$target = $target%$n;
}
$result = "";
foreach ($values as $val) {
$result .= $digits[$val];
unset($digits[$val]);
sort($digits);
}
$result .= $digits[0];
echo $result;