berekening voor voordeligste prijs

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Johannes Vlot

Johannes Vlot

28/01/2019 14:19:10
Quote Anchor link
Goeiemiddag,

Ik ben nieuw met programmeren maar ik weet wel zo het een en ander.
Nu heb ik een probleempje met een berekening.

Ik heb een variabele waar het totaal aantal beugels in staan : $allebeugels.
Deze heb ik nodig om te berekenen welk pakket beugels ik het best kan bestellen:
6 stuks = 15,32 euro
of 25 stuks 52,02 euro.

Mijn vraag is hoe kan ik dit het best doen met een if statement zodat hij automatisch de beste aankoop berekend naar het aantal beugels.

Misschien is dit niet de juiste categorie om dit in te vragen maar ik ben niet ervaren met php hulp en kon geen beter categorie vinden.
Alvast bedankt.
Gewijzigd op 28/01/2019 15:10:13 door Johannes Vlot
 
PHP hulp

PHP hulp

25/04/2019 04:55:54
Honeypot
 
Rick Okkersen

Rick Okkersen

28/01/2019 15:04:20
Quote Anchor link
Kun je een stukje code geven? Het is erg lastig te begrijpen zo... Hoe ziet $allebeugels er uit bijvoorbeeld?? Als je een stuk code geeft kan ik je denk ik wel helpen
 
Johannes Vlot

Johannes Vlot

28/01/2019 15:07:52
Quote Anchor link
Rick Okkersen op 28/01/2019 15:04:20:
Kun je een stukje code geven? Het is erg lastig te begrijpen zo... Hoe ziet $allebeugels er uit bijvoorbeeld?? Als je een stuk code geeft kan ik je denk ik wel helpen


Nou er is nog geen code voor... er moet een rekensom voor komen in php.
$allebeugels is een getal wat kan verschillen en dan moet er een berekening bij in php wat de beste aankoop berekend voor het aantal beugels: ?x 6 stuks of ?x 25 stuks. Ik hoop dat het zo duidelijker is.
Gewijzigd op 28/01/2019 15:08:43 door Johannes Vlot
 
Rick Okkersen

Rick Okkersen

28/01/2019 15:11:11
Quote Anchor link
Is het een soort winkel? Met verschillende pakketten? Een product in pakketten van 6 en 25?
 
Rob Doemaarwat

Rob Doemaarwat

28/01/2019 15:28:57
Quote Anchor link
Bedoel je:
- iemand zoekt 20 beugels.
- dat kan met 4x 6 stuks a 15,32 = 65,28
- of met 1x 25 stuks = 52,02
In dit geval is de versie met 1x 25 stuks dus de beste oplossing.

En dan nog uitgebreider voor 40 stuks:
- 7x 6 stuks
- 1x 25 stuks + 3x 6 stuks
- 2x 25 stuks
En dan weer uitzoeken wat de goedkoopste combi is?

Kijk eens naar ceil() en doe eens een voorzetje.
Gewijzigd op 28/01/2019 15:31:37 door Rob Doemaarwat
 
Johannes Vlot

Johannes Vlot

28/01/2019 15:32:16
Quote Anchor link
Rick Okkersen op 28/01/2019 15:11:11:
Is het een soort winkel? Met verschillende pakketten? Een product in pakketten van 6 en 25?


ja precies
Gewijzigd op 28/01/2019 15:39:18 door Johannes Vlot
 
Ivo P

Ivo P

28/01/2019 15:35:25
Quote Anchor link
klinkt een beetje als huiswerk?

Stel dat er 25 of minder in het te bestellen aantal zit:

Wat kost het bij aanschaf van een 25-pakket? 1x 52.02

Wat kost het bij aanschaf van 6-pakketten?
(aantalbeugels / 6) * 15.32

En dan kijken welke waarde kleiner is.

Boven ongeveer 25 wordt het anders, want dan komt er een stap bij omdat er dan combinaties mogelijk worden van een pakket van 25 en 6
 
Johannes Vlot

Johannes Vlot

28/01/2019 15:40:06
Quote Anchor link
Rob Doemaarwat op 28/01/2019 15:28:57:
Bedoel je:
- iemand zoekt 20 beugels.
- dat kan met 4x 6 stuks a 15,32 = 65,28
- of met 1x 25 stuks = 52,02
In dit geval is de versie met 1x 25 stuks dus de beste oplossing.

En dan nog uitgebreider voor 40 stuks:
- 7x 6 stuks
- 1x 25 stuks + 3x 6 stuks
- 2x 25 stuks
En dan weer uitzoeken wat de goedkoopste combi is?

Kijk eens naar ceil() en doe eens een voorzetje.

Ja dat bedoel ik, maar ook geen idee hoe ik dit met ceil kan oplossen.
 
Ivo P

Ivo P

28/01/2019 15:54:47
Quote Anchor link
ceil() gebruik je om naar boven af te ronden:

stel je hebt 10 beugels nodig:

10 / 6 = 1.667

dat moet naar boven afgerond om te bepalen dat je dus 2 pakketten nodig hebt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $benodigd = ceil(10 / 6); // = 2 ?>


even zo :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $benodigd = ceil(6/ 6); // = 1 ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $benodigd = ceil(13 / 6); // = 3 ?>
Gewijzigd op 28/01/2019 15:56:05 door Ivo P
 
Johannes Vlot

Johannes Vlot

28/01/2019 16:10:39
Quote Anchor link
Ivo P op 28/01/2019 15:54:47:
ceil() gebruik je om naar boven af te ronden:

stel je hebt 10 beugels nodig:

10 / 6 = 1.667

dat moet naar boven afgerond om te bepalen dat je dus 2 pakketten nodig hebt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $benodigd = ceil(10 / 6); // = 2 ?>


even zo :
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $benodigd = ceil(6/ 6); // = 1 ?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $benodigd = ceil(13 / 6); // = 3 ?>

dankjewel! maar wat nou als ik 24 beugels heb dan geeft hij aan dat ik 4 pakketten van 6 nodig heb maar mijn bedoeling is dan dat hij berekend dat ik beter een pakket van 25 stuks kan kopen.
bijvoorbeeld ipv 4x6stuks 1x25stuks
Gewijzigd op 28/01/2019 16:11:36 door Johannes Vlot
 
Thomas van den Heuvel

Thomas van den Heuvel

28/01/2019 16:30:07
Quote Anchor link
Als je nu eerst eens een vraagstelling opstelt. Dit bevat in principe een specificatie van wat je dient te programmeren.

Dit wordt zoiets als:

Gegeven een gewenste hoeveelheid beugels X, zoek een minimale hoeveelheid combinatie van pakketten Y, zodanig dat deze ten minste X beugels bevatten, en tevens het goedkoopste is.

Wie zegt trouwens dat alle pakketten hetzelfde moeten zijn? Dit geef je zelf ook al aan.

Een mogelijke strategie is de volgende: ga er vanuit dat de gemiddelde stukprijs lager is als je een groter pakket koopt, dit is in ieder geval het geval bij bovenstaande hoeveelheden (stukprijs 2.553 per 6, 2.081 per 25).

Kun je dit dan niet gewoon behandelen als een (staart)deling met rest waarbij je start met het grootste pakket? Zolang een pakket "past" in het (resterende) aantal benodigde beugels, koop zo vaak mogelijk het grootste pakket als mogelijk?

Zie je dat dit een stuk makkelijker is? Gewoon even wat op papier kladderen nog zonder een letter te programmeren? Je hebt nu een strategie waarmee je aan het programmeren kunt slaan.

EDIT: en dan zijn er dus aan het einde nog wat randgevallen waar het soms voordeliger is om een groter pakket te kopen, dit wordt bepaald door hoeveel beugels je nog minimaal je nodig hebt, en hoeveel dat kost. Dat omslagpunt zul je dus per geval moeten inspecteren.

Maar dit laatste is een apart probleem wat apart opgelost kan worden. Voor het grootste deel van de berekening kun je bovenstaande strategie toepassen.

EDIT2: hmm, en dit probleem kan zich dus mogelijk herhalen als je veel verschillende pakketten hebt. Zodra een bepaald pakket niet meer past in het restant is dit een moment om te kijken wat de beste combinatie is. Als dit weer een restant oplevert herhaalt dit proces zich. Is dit een recursief probleem? :p
Gewijzigd op 28/01/2019 16:44:59 door Thomas van den Heuvel
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.