Forum Moderators: coopster
$stones_arr = array(1,2,3,4,5,6,8,9,10,11,12,13); //12 altogether
//for loop repeats 2 times coz max stones = 2
for($i=0;$i<sizeof($stones_arr);$i++){ // for all 12 stones
for($n=0;$n<sizeof($stones_arr);$n++){ // for all 12 stones
print $permutation = $stones_arr[$i].','.$stones_arr[$n];
print '<br />';
}
}
$stones_arr = array(1,2,3,4,5,6,8,9,10,11,12,13); //12 altogether
//for loop repeats 3 times coz max stones = 3
for($i=0;$i<sizeof($stones_arr);$i++){ // for all 12 stones
for($n=0;$n<sizeof($stones_arr);$n++){ // for all 12 stones
for($m=0;$m<sizeof($stones_arr);$m++){ // for all 12 stones
print $permutation = $stones_arr[$i].','.$stones_arr[$n].','.$stones_arr[$m];
print '<br />';
}
}
}
trying to get all the permutations for a given set of stone ids depending on the no of stones per jewellery item
<?PHP
function permutation ($n_stones, $size) {
// Initialize the array
for($i=0;$i<$size;$i++){
$numbers[]=1;
}
$n = $size-2;
$str = '';
// Loop over each position in the array
while($numbers[0] <= $n_stones) {
while( $numbers[$size-1] <= $n_stones) {
$str .= implode(',',$numbers).'<br/>';
++$numbers[$size-1];
}
if($numbers[0] >= $n_stones){break;}
$numbers[$size-1] = 1;
while($numbers[0] < $n_stones) {
if($numbers[$n] < $n_stones) {
++$numbers[$n];
break;
} else {
--$n;
}
}
}
return $str;
}
$stones = 12;
$max = 3;
for($i = 2; $i<=$max; ++$i) {
echo permutation($stones,$i);
}
?>
<?PHP
function permutation ($n_stones, $size) {
// Initialize the array
for($i=0;$i<$size;$i++){
$numbers[]=1;
}
$n = $size-2;
$id_array = array();
// Loop over each position in the array
while($numbers[0] <= $n_stones) {
while( $numbers[$size-1] <= $n_stones) {
$id_array[] = $numbers;
++$numbers[$size-1];
}
if($numbers[0] >= $n_stones){break;}
$numbers[$size-1] = 1;
while($numbers[0] < $n_stones) {
if($numbers[$n] < $n_stones) {
++$numbers[$n];
break;
} else {
--$n;
}
}
}
return $id_array;
}
$stones = 5;
$max = 3;
$ids = array ('0','a','b','c','d','e');
$str = '';
for($i = 2; $i<=$max; ++$i) {
$id_set = permutation($stones,$i);
foreach($id_set as $perm) {
foreach($perm as $id) {
$str .= $ids[$id].',';
}
$str = substr($str,0,-1) . "<br/>";
}
}
echo $str;
?>