<?php
$array = [1, 2, 3];
function getFactorial($array){
$factorial = 1;
for($n = 1; $n<=count($array); $n++){ $factorial *= $n;
}
return $factorial;
}
$factorial = getFactorial($array);
function getCombination($array){
$combination = [];
for($n = 0; $n<=(count($array) - 1); $n++){ if(($n+1) > (count($array) - 1)){ $combination[] = $array[0];
} else {
$combination[] = $array[$n+1];
}
}
return $combination;
}
function Main($factorial, $array){
$halfFactorial = $factorial/2;
$combination = getCombination($array);
while($factorial > 0){
$combination = getCombination($combination);
if($factorial <= $halfFactorial){
}
$factorial--;
}
}
Main($factorial, $array);
PD9waHAKCmVycm9yX3JlcG9ydGluZygtMSk7CgokYXJyYXkgPSBbMSwgMiwgM107CgpmdW5jdGlvbiBnZXRGYWN0b3JpYWwoJGFycmF5KXsKCSRmYWN0b3JpYWwgPSAxOwoJZm9yKCRuID0gMTsgJG48PWNvdW50KCRhcnJheSk7ICRuKyspewoJCSRmYWN0b3JpYWwgKj0gJG47Cgl9CglyZXR1cm4gJGZhY3RvcmlhbDsKfQoKJGZhY3RvcmlhbCA9IGdldEZhY3RvcmlhbCgkYXJyYXkpOwoKZnVuY3Rpb24gZ2V0Q29tYmluYXRpb24oJGFycmF5KXsKCSRjb21iaW5hdGlvbiA9IFtdOwoJZm9yKCRuID0gMDsgJG48PShjb3VudCgkYXJyYXkpIC0gMSk7ICRuKyspewoJCWlmKCgkbisxKSA+IChjb3VudCgkYXJyYXkpIC0gMSkpewoJCQkkY29tYmluYXRpb25bXSA9ICRhcnJheVswXTsKCQl9IGVsc2UgewoJCQkkY29tYmluYXRpb25bXSA9ICRhcnJheVskbisxXTsKCQl9Cgl9CglyZXR1cm4gJGNvbWJpbmF0aW9uOwp9CgpmdW5jdGlvbiBNYWluKCRmYWN0b3JpYWwsICRhcnJheSl7CgkkaGFsZkZhY3RvcmlhbCA9ICRmYWN0b3JpYWwvMjsKCSRjb21iaW5hdGlvbiA9IGdldENvbWJpbmF0aW9uKCRhcnJheSk7Cgl3aGlsZSgkZmFjdG9yaWFsID4gMCl7CgkJJGNvbWJpbmF0aW9uID0gZ2V0Q29tYmluYXRpb24oJGNvbWJpbmF0aW9uKTsKCQlpZigkZmFjdG9yaWFsIDw9ICRoYWxmRmFjdG9yaWFsKXsKCQkJa3Jzb3J0KCRjb21iaW5hdGlvbik7CgkJfQoJCXByaW50X3IoJGNvbWJpbmF0aW9uKTsKCQkkZmFjdG9yaWFsLS07Cgl9Cn0KCk1haW4oJGZhY3RvcmlhbCwgJGFycmF5KTs=