Generaal Douglas MacArthur speelde een belangrijke rol in zowel de Eerste en de Tweede Wereldoorlog als in de Koreaanse Oorlog. In 1944 kreeg hij de rang van General of the Army, met vijf sterren als onderscheidingstekens. Hij is daarmee in de geschiedenis van de USA één van de slechts 5 generaals die vijf sterren hebben gekregen en één van slechts acht die die titel hebben gedragen. Hoewel MacArthur controversieel was qua karakter, beschikte hij over uitzonderlijke leiderscapaciteiten.

Douglas MacArthur
Douglas MacArthur (1880-1964)

Om zijn imago in stand te houden, zichzelf wat te amuseren, en zijn gasten te entertainen begon MacArthur een wiskundetrucje te gebruiken dat hij "die goeie ouwe 115" noemde. Hierbij stelt hij aan een van zijn gasten de vraag om het rangnummer van de maand waarin hij of zij geboren is op een papiertje te schrijven. De maand januari heeft rangnummer 1, februari heeft rangnummer 2, enzoverder. Op dit ogenblik draait hij ostentatief zijn rug naar zijn gasten zodat hij duidelijk niet kan zien wat er op het papiertje neergekrabbeld wordt als reactie op zijn instructies. De instructies die hij geeft zijn om achtereenvolgens volgende zaken op het papiertje te schrijven:

  1. geef het rangnummer van je geboortemaand: 2 (we gebruiken februari als voorbeeld)

  2. verdubbel het getal: 4

  3. tel er vijf bij op: 9

  4. vermenigvuldig het getal met 50: 450

  5. tel er je leeftijd bij op: 490 (we gebruiken 40 als voorbeeld)

  6. trek er 365 van af: 125

Nu komt de aap uit de mouw. Hij vraagt zijn gast om het laatste getal luidop voor te lezen. In dit geval dus het getal 125. Met wat eenvoudig hoofdrekenen telt hij snel 115 op bij het getal dat zijn gast heeft uitgesproken. Voor ons voorbeeld bekomt hij dus het getal 240. Daarop zegt hij zonder aarzelen en tot ieders verrassing: "Wel, mijn vriend, je bent geboren in de maand februari en je bent 40 jaar oud."

Dit is hoe hij het doet. Het eerste cijfer van het bekomen getal — samen met het tweede cijfer indien het getal uit vier cijfers bestaat — vormt het rangnummer van de geboortemaand van de gast, als de goeie ouwe 115 er correct werd bij opgeteld. De laatste twee cijfers geven de leeftijd van de gast aan.

Opgave

  1. Schrijf een functie gast die op basis van het rangnummer van de geboortemaand en de leeftijd van de gast — beide moeten als argument aan de functie teruggegeven worden — het getal teruggeeft dat de gast op zijn papiertje heeft staan nadat hij of zij de instructies van generaal MacArthur heeft uitgevoerd.

    def gast(maand, leeftijd)

  2. Schrijf een functie macArthur die een tuple (zie sectie 6.7 in het handboek) met het rangnummer van de geboortedatum en de leeftijd van de gast teruggeeft, op basis van het getal dat de gast luidop heeft voorgelezen van zijn papiertje. Dit laatste getal moet als argument aan de functie doorgegeven worden. Generaal MacArthur gaat ervan uit dat zijn gast niet ouder is dan 100 jaar.

    def macArthur(getal)

Voorbeeld

>>> gast(2, 40)
125
>>> macArthur(125)
(2, 40)
>>> macArthur(gast(2, 40))
(2, 40)
>>> gast(12,35)
1120
>>> macArthur(1120)
(12, 35)
>>> gast(12,28)
1113
>>> macArthur(1113)
(12, 28)