Onlangs stond in de NRC een leuk raadseltje:
"Voor een taart staan 100 mensen in de rij. De eerste krijgt 1/100 stukje taart, De tweede krijgt 2/100 van de rest van de taart. De derde krijgt daarna 3/100 en zo door. Op welke plek krijg je het grootste stuk?
Met het volgende stukje pythoncode wordt duidelijk dat nummer 10 het grootste stuk krijgt en dat klopt ook met artikeltje in de krant:
Maar als ik probeer mbv python de persoon die het grootste stuk krijg er uit te filteren krijg ik steeds 8 als resultaat:
grootste = 0
taart = 100
for i in range (1,100):
deel = i/100 * taart
taart = taart - deel
if deel > grootste:
grootste = i
print (grootste)
Is er iemand die aan kan geven wat hier fout gaat? Ik ben echt heel benieuwd.
"Voor een taart staan 100 mensen in de rij. De eerste krijgt 1/100 stukje taart, De tweede krijgt 2/100 van de rest van de taart. De derde krijgt daarna 3/100 en zo door. Op welke plek krijg je het grootste stuk?
Met het volgende stukje pythoncode wordt duidelijk dat nummer 10 het grootste stuk krijgt en dat klopt ook met artikeltje in de krant:
Python:
1
2
3
4
5
6
| grootste = 0 taart = 100 for i in range (1,100): deel = i/100 * taart taart=taart - deel print (i, deel, taart, taart+deel) |
Maar als ik probeer mbv python de persoon die het grootste stuk krijg er uit te filteren krijg ik steeds 8 als resultaat:
grootste = 0
taart = 100
for i in range (1,100):
deel = i/100 * taart
taart = taart - deel
if deel > grootste:
grootste = i
print (grootste)
Is er iemand die aan kan geven wat hier fout gaat? Ik ben echt heel benieuwd.
[ Voor 1% gewijzigd door Creepy op 08-10-2017 21:29 . Reden: Opgeleukt met code tags. ]