Transport-
problemet
Problemlösning i matematik med programmering
Problem
Tonys transportbil har
- Maximal lastvolym: \(8\phantom{.}000\text{ dm}^3\)
- Maximal lastvikt: \(1\phantom{.}700\text{ kg}\)
För lådorna som ska transporteras gäller:
Typ av låda | Volym [dm3/låda] |
Vikt per låda [kg] | Fraktersättning [kr/låda] |
---|---|---|---|
Stor och lätt | 200 | 5 | 40 |
Liten och tung | 50 | 20 | 25 |
Vilken kombination av antal stora och små lådor ska Tony transportera för att få maximal ersättning?
Prövning
Antal stora lådor | Antal små lådor |
Total volym [dm3] (max: 8 000) |
Total vikt [kg] (max: 1 700) |
Ersättning [kr] |
---|---|---|---|---|
0 | 85 | 4 250 | 1 700 | 2 125 |
40 | 0 | 8 000 | 200 | 1 600 |
24 | 64 | 8 000 | 1 400 | 2 560 |
12 | 82 | 6 500 | 1 700 | 2 530 |
6 | 83 | 5 350 | 1 690 | 2 315 |
Det stora antalet kombinationer att pröva gör att det är tidsödande att hantera manuellt.
Vi låter datorn göra jobbet!
Flödesschema
Kod
# Programmet skrivet i Python enligt uppgift
# i Ma5000+, 2c-kursen
Emax = 0 # Nollställ maximal ersättningen
# I for-looparna nedan så ökas antalet stora lådor (x)
# och antalet små lådor (y) en i taget för varje varv
for x in range(0, 41): # Loop som räknar stora lådor, start från 0
for y in range(1, 86): # Loop som räknar små lådor, start från 1
V = 200*x + 50*y # Beräknar total volym
m = 5*x + 20*y # Beräknar total vikt
if V <= 8000 and m <= 1700: # Lastkriterier uppfyllda?
E = 40*x + 25*y # Beräknar ersättning för kombination
if E > Emax: # Hittills största möjliga ersättning?
Emax = E # Tilldela Emax det aktuella värdet
stora = x # Spara antalet stora lådor
små = y # Spara antalet små lådor
print("Tony ska lasta", stora, "stora lådor och ")
print(små, " små lådor för maximal ersättning.")
Slutnotering
I matematikkursen behöver du inte kunna skapa ett sådant här program från början, men det är tänkt att du ska förstå hur ett enklare program som löser matematiska problem fungerar och kunna göra mindre förändringar utifrån en given kod. Två viktiga strukturer, som återkommer i de flesta program, är villkor och loopar. Dessa har vi här sett exempel på.
Lycka till med dina tilldelade programmeringsuppgifter!
Transportproblemet
By Nikodemus Karlsson
Transportproblemet
En uppgiftspresentation som inleder programmeringsavsnittet i Ma2c.
- 70