Ich versuche eine gegebene Menge zb 0.5l Wasser auf eine gegebene Anzahl Behälter zu verteilen zb 2Flaschen.
Die minimale Einheit ist 0.1l es gibt also keine 0,05l oder 0.25l.
Irgendwie breche ich mir einen ab so eine simple Aufgabe zu lösen.
Hier mal mein Versuch:
Irgendwie nehme ich an das ich das nicht nur falsch mache sondern völlig unötig unperformant. Vieleicht kann jemand von euch das viel einfacher oder kürzer lösen.
Die minimale Einheit ist 0.1l es gibt also keine 0,05l oder 0.25l.
Irgendwie breche ich mir einen ab so eine simple Aufgabe zu lösen.
Hier mal mein Versuch:
PHP:
$Inhaltneu=array();
$gesamt=$Inhalt;
$Anz=$Anzahl;
$Wert=0;
while ($flag==false) {
if (0>$gesamt-0.1*$Anz) {
$Wert++;
$Anz--;
if ($Anz==0) {
break;
}
}
if ($gesamt>=0.1*$Anz) {
for($j=$Wert; $j<$Anz; $j++){
$Inhalts=$Inhaltneu[$j];
$Inhaltneu[$j]=$Inhalts+0.1;
echo "<p>$Inhaltneu[$j]</p>";
}
}
$Different=0.1*$Anz;
if ($gesamt-$Different==0) {
echo "<p>TEST2:</p>";
$flag=true;
break;
}
$gesamt=$gesamt-$Different;
echo "<p>Gesamt:$gesamt Minus Different:$Different</p>";
if ($gesamt<=0.09) {
$flag=true;
break;
}
//// Dies trifft nie ein
//// statt Null taucht eine utopische Zahl auf
//// 2.77555756156E-16
if ($gesamt==0) {
$flag=true;
break;
}
}
for($j=0; $j<$Anzahl; $j++){
for($i=0; $i<$Faecher; $i++){
if (!isset($ItemsUnSerialize[$i])) {
$ItemsUnSerialize[$i][0] = $IsItem;
$ItemsUnSerialize[$i][1] = $Inhaltneu[$j];
break;
}
}
}
Irgendwie nehme ich an das ich das nicht nur falsch mache sondern völlig unötig unperformant. Vieleicht kann jemand von euch das viel einfacher oder kürzer lösen.