Combinaties met script genereren
NE AX
21/11/2014 15:37:02Ik probeer een script te maken die mogelijke combinaties genereert.
Stel je moet met een vliegtuig x aantal trajecten vliegen. Voor elk traject kun je beslissen of je bij zal tanken of niet. Startplaats noemen we punt 0. En afhankelijk van het aantal trajecten opeenvolgend punt 1 2 3 ...
Stel je hebt 4 trajecten. Mogelijks neem je dus 4 punten waar er getankt wordt. Mogelijks tank je genoeg op punt 0 voor alle 4 trajecten. Mogelijkheden met voorafgaand het aantal tankbeurten:
1 : 0
2 : 0-1 of 0-2 of 0-3
3 : 0-1-2 of 0-1-3 of 0-2-3
4 : 0-1-2-3
8 mogelijkheden dus. Mogelijkheden zijn natuurlijk afhankelijk van het aantal trajecten, dit met formule n = 2 ^ (trajecten - 1).
Hoe maak ik het makkelijkst een script welke dit aankan, gezien het aantal digits varieert?
Toevoeging op 21/11/2014 18:31:17:
De lijst met variabele trajecten 5 bvb:
Stel je moet met een vliegtuig x aantal trajecten vliegen. Voor elk traject kun je beslissen of je bij zal tanken of niet. Startplaats noemen we punt 0. En afhankelijk van het aantal trajecten opeenvolgend punt 1 2 3 ...
Stel je hebt 4 trajecten. Mogelijks neem je dus 4 punten waar er getankt wordt. Mogelijks tank je genoeg op punt 0 voor alle 4 trajecten. Mogelijkheden met voorafgaand het aantal tankbeurten:
1 : 0
2 : 0-1 of 0-2 of 0-3
3 : 0-1-2 of 0-1-3 of 0-2-3
4 : 0-1-2-3
8 mogelijkheden dus. Mogelijkheden zijn natuurlijk afhankelijk van het aantal trajecten, dit met formule n = 2 ^ (trajecten - 1).
Hoe maak ik het makkelijkst een script welke dit aankan, gezien het aantal digits varieert?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$possibility = 0;
$maxPossibilities = pow(2,$legs-1);
$numberOfDigits = 1;
$maxDegits = $legs;
$firstDigit = 0;
$lastDigit = $legs - 1;
$fuelStops = 1;
$maxFuelStops = $legs;
while ($possibilities <= $maxPossibilities) {
for ($fuelStop = 1; $fuelStops <= $maxFuelStops; $fuelStop++) {
for ($numberOfDigits = 1; $numberOfDigits <= $maxDegits; $numberOfDigits ++) {
echo $firstDigit;
while ($nextDigit)
echo $possibility;
echo "<br /><br />";
$possibility++;
}
}
}
?>
$possibility = 0;
$maxPossibilities = pow(2,$legs-1);
$numberOfDigits = 1;
$maxDegits = $legs;
$firstDigit = 0;
$lastDigit = $legs - 1;
$fuelStops = 1;
$maxFuelStops = $legs;
while ($possibilities <= $maxPossibilities) {
for ($fuelStop = 1; $fuelStops <= $maxFuelStops; $fuelStop++) {
for ($numberOfDigits = 1; $numberOfDigits <= $maxDegits; $numberOfDigits ++) {
echo $firstDigit;
while ($nextDigit)
echo $possibility;
echo "<br /><br />";
$possibility++;
}
}
}
?>
Toevoeging op 21/11/2014 18:31:17:
De lijst met variabele trajecten 5 bvb:
Er zijn nog geen reacties op dit bericht.