Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 06-02-2017, 13:47
sanktusm
 Registrierter Benutzer
Links : Onlinestatus : sanktusm ist offline
Registriert seit: Aug 2005
Beiträge: 660
sanktusm zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Beste Kombination ermitteln

Hallo,
ich habe hier ein Script mit dem ich die nächstliegende Kombination von Bauplatten der Länge 2.5 und 4 ermitteln möchte:
Mir erscheint die Lösung nah, indem ich in 0.5er Schritten die Länge ermittle, die passt:

PHP-Code:
<?php
   
$totals 
= array();
$x=0;

function 
getAllCombinations($ind$denom$n$vals=array()){
    global 
$totals$x;
    if (
$n == 0){
        foreach (
$vals as $key => $qty){
            for(; 
$qty>0$qty--){
                
$totals[$x][] = $denom[$key];
             }
        }
        
$x++;
        return;
    }
    if (
$ind == count($denom)) return;
    
$currdenom $denom[$ind];
    for (
$i=0;$i<=($n/$currdenom);$i++){
        
$vals[$ind] = $i;
        
getAllCombinations($ind+1,$denom,$n-($i*$currdenom),$vals);
    }
}


function 
ceiling($number$significance 1)
    {
        return ( 
is_numeric($number) && is_numeric($significance) ) ? (ceil($number/$significance)*$significance) : false;
    }

$array = array(2.54);
$sum 0.5;
$length ceiling(11.40.5);

while(empty(
getAllCombinations(0$array$length))) {

$length $length 0.5;
 
}





getAllCombinations(0$array$sum);
echo 
"<pre>";
print_r($totals);
echo 
"</pre>";
Leider gibt die function den Wert total nicht zurück. Weiß jemand wie ich das hinkriege?

Geändert von sanktusm (06-02-2017 um 14:04 Uhr)
Mit Zitat antworten