Charles Babbage1 (26 december 1791 – 18 oktober 1871) was een Brits wiskundige, filosoof, uitvinder en werktuigbouwkundige die bekend werd als de ontwerper van de eerste geautomatiseerde, programmeerbare, mechanische rekenmachine — de voorloper van de elektronische computer.

Charles Babbage
Portret van Charles Babbage door Samuel Laurence.

Van 1834 tot aan zijn dood in 1871 was Babbage bezig met het concept van de eerste programmeerbare (mechanische) rekenmachine, die hij de analytische machine2 (Analytical Engine) noemde. Dit was een waardige voorloper van de elektronische computer zoals wij die nu kennen, omdat hij in principe de basisfuncties van een eenvoudige computer zou hebben. Hij zou met ponskaarten werken, beslissingen nemen, berekeningen maken en uitkomsten onthouden. Als hij gebouwd zou zijn dan zou het een gigantisch apparaat geweest zijn — opgebouwd uit mechanische onderdelen als tandwielen en assen — dat zou aangedreven worden door een stoommachine.

analytische machine
De analytische machine is nooit gebouwd. Wanneer dit wel het geval zou geweest zijn dan zou Babbages machine de eerste Turing-volledige digitale computer geweest zijn. De zoon van Babbage, Henry Prevost Babbage, liet in 1910 weten dat er wel een gedeelte van de analytische machine gebouwd was en dat daarmee een (weliswaar onvolmaakte) lijst van veelvouden van pi was berekend. Het resultaat is te zien in het Science Museum te Londen.

Ada Lovelace34 (10 December 1815 – 27 November 1852) schreef het allereerste computerprogramma voor de analytische machine van Charles Babbage. Daarmee was ze dus de eerste programmeur uit de geschiedenis. Dat een vrouw zich met programmeren bezighield was voor die tijd zeer bijzonder want vrouwen werden doorgaans buitengesloten uit het onderwijs. Ada Lovelace was evenwel door privéleraren tot wiskundige opgeleid en raakte in de jaren 30 van de 19e eeuw goed bevriend met Babbage.

Ada Lovelace
Ada Byron King, Lady Lovelace (1840).

Omdat de machine niet gebouwd geweest is, heeft ze haar programma's nooit zien werken. In mei 1979 werd er een programmeertaal naar haar vernoemd, die door Jean Ichbiah5 van Honeywell Bull6 werd ontwikkeld voor het Amerikaanse ministerie van defensie onder de codenaam Green. Op 10 december 1980 — haar 165e geboortedag — volgde de officiële goedkeuring van het gebruikershandboek voor de nieuwe programmeertaal Ada7.

Opgave

Vooruitkijkend naar het soort problemen dat zijn analytische machine zou kunnen oplossen, omschreef Charles Babbage het volgende voorbeeld in een brief die hij in 1837 schreef naar Lord Bertram Bowden:

Wat is het kleinste positieve geheel getal waarvan het kwadraat eindigt met de cijfers 269.696?

Hij dacht dat het antwoord misschien 99.736 zou kunnen zijn, waarvan het kwadraat gelijk is aan 9.947.269.696. Maar hij was niet helemaal zeker of dit wel het kleinste getal was waarvan het kwadraat eindigt op 269.696.

Invoer

Een regel met een getal $$n \in \mathbb{N}_0$$ gevolgd door een regel die enkel cijfers bevat.

Uitvoer

De $$n$$ kleinste natuurlijke getallen waarvan het kwadraat eindigt met de cijfers die gegeven worden op de tweede regel van de invoer. Voor elk van deze natuurlijke getallen $$m$$ (van klein naar groot) moet telkens een regel uitgeschreven worden met als formaat:

$$m$$ * $$m$$ = $$m^2$$

Voorbeeld

Invoer:

5
269696

Uitvoer:

25264 * 25264 = 638269696
99736 * 99736 = 9947269696
150264 * 150264 = 22579269696
224736 * 224736 = 50506269696
275264 * 275264 = 75770269696

Voorbeeld

Invoer:

3
03076

Uitvoer:

1226 * 1226 = 1503076
11274 * 11274 = 127103076
13726 * 13726 = 188403076

Epiloog

Bekijk als inleiding op onderstaande video zeker ook eens de Tedx talk (Ada Lovelace: the original woman in tech8) van Zoe Philpott, de actrice die de monoloog brengt in de video.

Bronnen