Zufällige Aufteilung einer Gesamtstrecke auf Einzelstrecken
Hallo,
ich habe folgende Problemstellung:
Gegeben ist eine Gesamtstrecke, eine konstante Teilstrecke und ein Array mit variablen Teilstrecken. Ich möchte nun die Gesamtstrecke auf die verschieden (Summen der) Teilstrecken aufteilen. Dazu habe ich mir diesen Ansatz ausgedacht:
Das scheint zwar zu funktionieren, bin mir aber nicht sicher, ob es eine andere (bessere) Lösungsmöglichkeit gibt. Wie würdet Ihr das lösen?
Viele Grüße
Arndtinho
Hallo,
ich habe folgende Problemstellung:
Gegeben ist eine Gesamtstrecke, eine konstante Teilstrecke und ein Array mit variablen Teilstrecken. Ich möchte nun die Gesamtstrecke auf die verschieden (Summen der) Teilstrecken aufteilen. Dazu habe ich mir diesen Ansatz ausgedacht:
PHP:
$sum_dist = 0;
$total = 200;
$cust = array(0 => array('name' => 'cust 1',
'otc' => 20,
'cth' => 25,
'used' => 0
),
1 => array('name' => 'cust 2',
'otc' => 10,
'cth' => 15,
'used' => 0
),
2 => array('name' => 'cust 3',
'otc' => 20,
'cth' => 10,
'used' => 0
),
3 => array('name' => 'cust 4',
'otc' => 20,
'cth' => 20,
'used' => 0
),
4 => array('name' => 'cust 5',
'otc' => 30,
'cth' => 35,
'used' => 0
)
);
while ($sum_dist < $total) {
// Element per Zufall wählen
$key = array_rand($cust, 1);
// prüfen, ob Element schon einmal benutzt wurde
if($cust[$key]['used'] == 0) {
// berechnen der Vergleichsstrecke
$sum_dist = $sum_dist + (25 + ($cust[$key]['otc'] + $cust[$key]['cth']));
if ($sum_dist < $total ) {
$cust[$key]['used'] = 1;
$rest = $total - $sum_dist;
}
}
}
echo "<br>Rest: ".$rest;
Viele Grüße
Arndtinho
Zuletzt bearbeitet: