Wiskunde in de IT

PDF version

In de brugklas is het voor menig leerling een groot raadsel waarom je wiskundeles krijgt. Met de komst van TV-series als Numb3rs, wordt dit al een stuk duidelijker. In deze serie lost de hoofdpersoon FBI-zaken op met wiskunde. Maar er is een veel belangrijkere toepassing voor wiskunde, namelijk de IT.

Beroepsperspectief

Er zijn veel beroepen waarbij kennis van wiskunde niet noodzakelijk is. Denk maar eens aan een politie-agent, advocaat, verkoper, vuilnisman, schilder of diëtist. Hoewel er soms wel wat rekenwerk bij komt kijken, komen er zelden uitgebreide formules en vergelijkingen aan te pas.
In de IT ligt dit wel iets anders. Een webdesigner moet er bijvoorbeeld rekening mee houden dat er verschillende beeldscherm-resoluties bestaan. Maar de meeste wiskunde komt nog wel om de hoek kijken bij het programmeren.

Programmeren

Er zijn maar weinig nuttige applicaties waarin niet gerekend wordt. Dat is natuurlijk niet zo gek, als je bedenkt dat de computer ooit begonnen is als rekenmachine.
Toen ik net begon met programmeren, waren de berekeningen erg eenvoudig. Ik had toen voornamelijk te maken met optelsommetjes in de database. In de loop der tijd werden de berekeningen echter steeds ingewikkelder.

Bewegingen

Gisteren heb ik een bewegend object geïmplementeerd in een kaartspel. De kaart moest hierin in een mooie vloeiende beweging over het bord verschuiven van de stapel naar het vakje van de speler. Dit kan natuurlijk in een rechte lijn, maar niets is realistischer dan een mooie boog. Maar na de eerste kaart, moest ook de tweede kaart volgen. Deze moest tien pixels hoger eindigen dan zijn voorganger, zodat beide kaarten zichtbaar zouden zijn.

Om dit probleem op te lossen heb ik een loop gemaakt die honderd keer wordt doorlopen. Iedere keer wordt de y-positie met “de ΔY van de start- en eindpositie gedeeld door honderd” verhoogd. Hierdoor wordt de kaart in een gelijk tempo omlaag geduwd op het scherm.
Om toch het boog-effect te creëren, heb ik de x-as in het begin sneller laten afnemen dan in loop 75. Het laatste stukje heb ik de x-as zelfs weer iets op laten tellen, zodat de kaart weer naar rechts zou schuiven. Hierdoor is een soort omgekeerd-Nike-logo-effect ontstaan. Omdat de targetX en -Y steeds verschillend zijn, was een formule een absolute must.
Een gekantelde parabool (y<sup>2</sup>=x) is de oplossing voor dit probleem. Uiteraard is de formule wel iets uitgebreider dan zojuist beschreven, maar het geeft wel aan dat we met de wiskunde uit de brugklas een heleboel problemen op kunnen lossen.
Naast bewegende objecten, is er natuurlijk veel meer rekenwerk op grafisch gebied. Denk maar eens aan 3d-objecten. Dat is wel hele andere koek. Vandaar dat we ook een speciale grafische kaart hebben in de computer, welke dit soort geavanceerde berekeningen doet. Zouden we dat allemaal met onze normale CPU doen, dan zouden andere programma’s bijna niet meer reageren als er op de achtergrond een spelletje draait.

Encryptie

Een veel ingewikkeldere vorm van wiskunde in de IT is encyptie. Denk bijvoorbeeld aan mijn artikel over RSA encryptie. Het mooie van deze encyptie is, dat de techniek zelf ontzettend eenvoudig is, maar het bedenken van zo’n algoritme is een ware kunst.

Grafieken

Het laatste voorbeeld dat ik ga geven, zijn grafieken. In eerste instantie klinkt het niet zo heel ingewikkeld. We nemen een plaatje van 200×200 px, tekenen een lijn van (100,0) naar (100,200) en van (0,100) naar (200,100). Nu hebben we de assen en kunnen we de lijn gaan tekenen. We moeten ons echter niet vergissen, want een lijn die moet beginnen op (0,0), moeten we tekenen vanaf (100,100). Dit is namelijk het midden van het scherm.
Tot nu toe is alles nog wel te overzien, maar wat als we bedenken dat we bovenaan 10px ruimte willen voor een titel? Of als we de schaal gaan aanpassen? Of wanneer we een staafdiagram willen rekenen, met onderaan netjes de labels? Wat dat betreft, zijn grafieken tekenen de grootste nachtmerrie voor een programmeur.

Conclusie

Wiskunde is een belangrijk onderdeel van de IT. Zonder wiskundig inzicht is het onmogelijk om geavanceerde programma’s te ontwikkelen. Daarnaast zorgt wiskunde voor een beter inzicht in het algemeen. Een loop in een loop lijkt onschuldig, maar kost in werkelijkheid ontzettend veel resources. Een programmeur met voldoende inzicht, zal zoiets onmiddellijk begrijpen en dit vermijden.
Op de middelbare school worden veel basics uitgelegd, welke van groot belang zijn voor de rest van je loopbaan.

161 Comments

daleFebruary 5th, 2015 at 10:57

.

tnx….

CameronFebruary 5th, 2015 at 11:27

.

tnx for info….

enriqueFebruary 7th, 2015 at 11:43

.

thank you!…

rossFebruary 7th, 2015 at 15:01

.

ñïñ çà èíôó!!…

AlexanderFebruary 7th, 2015 at 16:02

.

ñïñ çà èíôó!!…

DwightFebruary 7th, 2015 at 20:39

.

ñïàñèáî!…

ericFebruary 8th, 2015 at 02:23

.

áëàãîäàðþ….

tedFebruary 8th, 2015 at 10:37

.

thank you….

douglasFebruary 10th, 2015 at 21:46

.

ñïñ çà èíôó!…

ArthurFebruary 12th, 2015 at 04:45

.

good….

HomerFebruary 13th, 2015 at 18:33

.

áëàãîäàðåí….

Leave a comment

Your comment