Het verschil
Je rekende zeven dagen vooruit, en na zes dagen veranderde er bijna niets meer. Om de computer zelf te laten stoppen, moet hij eerst kunnen meten hoeveel er in één dag veranderd is. Dat meet je met één getal: de grootste verandering van een kans.
abs en max ken je uit
itereren tot het stabiel is.
Voorspel
oud = {"zon": 0.38, "wolken": 0.35, "regen": 0.27}
nieuw = {"zon": 0.349, "wolken": 0.362, "regen": 0.289}
verschil = 0
for weer in nieuw:
verschil = max(verschil, abs(nieuw[weer] - oud[weer]))
print(round(verschil, 3))
Wat print dit?
Antwoord
0.031
Zon zakt 0,031, wolken stijgen 0,012 en regen 0,019. abs haalt het
min-teken weg, en max houdt de grootste verandering bij: 0,031.
Zo werkt het
abs(nieuw[weer] - oud[weer]) is hoeveel één kans veranderde, of hij nu
stijgt of daalt. max(verschil, …) houdt in verschil de grootste
verandering tot nu toe bij. Na de loop weet je dus hoeveel de kans veranderde
die het meest veranderde. Is dat minder dan 0,001, dan verandert geen enkele
kans nog merkbaar.
Opdracht: hoeveel verandert er?
Reken uit hoeveel de verdeling in één dag verandert. Vanaf een zonnige dag print je:
0.5
Begin klein, en breid de code stap voor stap uit:
- Draai de code: hij rekent de verdeling van morgen uit en print hem.
- Zet onder de berekening
verschil = 0, en loop metfor weer in nieuw:langs het weer. Bewaar inverschilsteeds de grootste vanverschilen de verandering van dat weer. Printverschilna de loop: 0.5. - Begin op de verdeling van dag 2 uit de vorige stap:
verdeling = {"zon": 0.38, "wolken": 0.35, "regen": 0.27}. Hoe groot is het verschil nu?
Tip
Krijg je een negatief getal, of 0? Zon daalt van 1 naar 0,5, dus
nieuw["zon"] - verdeling["zon"] is negatief. Wat doet abs daarmee?
Antwoord
Dit komt onder de berekening in de editor:
verschil = 0
for weer in nieuw:
verschil = max(verschil, abs(nieuw[weer] - verdeling[weer]))
print(round(verschil, 3))
0.5
Zon verandert het meest, van 1 naar 0,5. Begin je op de verdeling van dag 2, dan krijg je 0.031, net als in de Voorspel.
Door naar tot het stilstaat.