Eenmaal aangesloten op de datapoort van het vliegtuig, ontdek je dat er een enorme tropische storm voorspeld wordt. Voordat je erachter kunt komen of dit een invloed zal hebben op je vakantieplannen, schakelt je laptop plots uit!
De batterij is leeg.
Je moet de stekker in het stopcontact steken. Er is maar één probleem: het stopcontact vlak bij je stoel heeft de verkeerde spanning. Voorbereid als je bent, maak je een lijst op van alle netvoedingsadapters die je in je rugzak hebt zitten.
Elke netvoedingsadapter is produceert een specifieke uitvoerspanning. Elke adapter kan een spanning van 1
, 2
of 3
volt lager binnenkrijgen dan zijn nominale waarde en toch zijn nominale uitvoerspanning produceren.
Bovendien heeft je laptop een ingebouwde netvoedingsadapter met een spanning die 3 volt hoger is dan de adapter met de hoogste uitvoerspanning in je rugzak. (Als je lijst van adapters 3
, 9
en 6
volt was, dan zou de ingebouwde adapter van je laptop een geschikt zijn voor een spanning van 12
volt.)
Beschouw het stopcontact in de buurt van je stoel als een effectieve spanning van 0
volt.
Aangezien je heel wat tijd moet doden, kan je net zo goed al je adapters testen. Ik zou niet naar een resort willen gaan, om vast te stellen dat je je laptop niet eens kunt opladen!
Als je alle adapters in je rugzak tegelijk gebruikt, wat is dan de verdeling van de spanningsverschillen tussen het oplaadpunt, de adapters en je laptop?
Stel bijvoorbeeld dat de adapters in je rugzak de volgende uitvoerspanningen hebben:
16
10
15
5
1
11
7
19
6
12
4
Met deze adapters zou de ingebouwde ingebouwde netvoedingsadapter van je laptop een spanning van 19 + 3 =
22
volt aankunnen, 3 volt hoger dan de adapter met de hoogste uitvoerspanning.
Omdat adapters enkel verbinding kunnen maken met een bron die 1-3 volt lager ligt dan hun uitvoerspanning, met je ze op de volgende manier aan elkaar schakelen om alle adapters te gebruiken:
1
, 2
of 3
volt moeten hebben. Hiervan heb je er maar één, namelijk een adapter van 1 volt (verschil van 1
).1
volt, is je enige keuze de adapter van 4
(verschil van 3
).4
volt kan je de adapters van 5
, 6
of 7
volt aansluiten. Om geen adapters over te slaan, moet je echter de adapter van 5
volt kiezen (verschil van 1
).6
volt kiezen en daarna de adapter van 7
volt (telkens met verschillen van 1
volt).7
volt, is de adapter met 10
volt (verschil van 3
).10
volt zijn de keuzes die van11
of 12
volt. Kies die van 11
volt (verschil van 1
) en dan die van 12
volt (verschil van 1
).12
volt is de enige mogelijk aansluiting met die van 15
volt (verschil van 3
), dan die van 16
volt (verschil van 1
) en dan die van 19
volt (verschil van 3
).22
volt (altijd een verschil van 3
).Als je in dit voorbeeld alle 7 de adapters gebruikt, dan heb zijn er 7
verschillen van 1 volt en 5
verschillen avn 3 volt.
Hier is er nog een groter voorbeeld:
28
33
18
42
31
14
46
20
48
47
24
23
49
45
19
38
39
11
1
32
25
35
8
17
7
9
4
2
34
10
3
Als je alle adapters uit dit grotere voorbeeld aan elkaar schakelt, dan heb je 22
verschillen van 1 vol en 10
verschillen van 3 volts.
Maak een ketting die al je adapters gebruikt om het laadpunt aan te sluiten op de ingebouwde adapter van je laptop en tel de spanningsverschillen tussen het laadpunt, de adapters en je laptop. Wat is het aantal spanningsverschillen van 1 volt vermenigvuldigd met het aantal spanningsverschillen van 3 volt? Hiervoor ga je als volgt te werk:
differences
waaraan de padnaam (String
) moet doorgegeven worden van een tekstbestand met voltages van een lijst van adapters (één per regel). De functie moet het product (int
) teruggeven van het aantal spanningsverschillen van 1 volt en het aantal spanningsverschillen van 3 volt.Deze statische functie moet zich in de klasse Submission
bevinden.
In deze interactieve sessie gaan we ervan uit dat de tekstbestanden adapters1.txt
1 en adapters2.txt
2 zich in de huidige directory bevinden.
> Submission.differences("adapters1.txt")
35
> Submission.differences("adapters2.txt")
220