Huidige Student Challenge 2021 recordhouder
Bij deze opdracht gaan we een nieuwe functie “f(x)” definiëren die erg verrassende eigenschappen heeft.
De meesten zullen al vertrouwd zijn met de floor-functie die een reëel getal afbeeldt op een lagere of gelijke waarde. Zo is floor(pi) = 3. Er wordt niet afgerond naar het dichtstbijzijnde gehele getal, er wordt effectief een lagere (of gelijke) waarde genomen, dus floor (3.99) = 3. Als we de floor-functie toepassen op een geheel getal, blijft het dat geheel getal zelf, dus floor (3) = 3. De floor-functie bestaat ook voor negatieve getallen, en blijft naar lagere of gelijke waarden werken, dus floor (-3) = -3, maar floor (-pi) = -4. De floor-functie geeft dus het hoogste gehele getal weer dat het opgegeven argument niet overtreft.
De floor-functie heeft op zich een aantal heel bijzondere eigenschappen en zelfs onopgeloste wiskundige problemen waarop men het antwoord tot op heden nog niet weet. Hiervoor verwijzen we naar de online beschikbare literatuur, aangezien dit verder niet relevant is voor onze opdracht.
Wij gaan de floor-functie gebruiken als bouwblok voor de definitie van een nieuwe functie, namelijk “f(x)”:
De functie f(x) is vrij eenvoudig te implementeren. Alle courante programmeeromgevingen hebben een floating point datatype en een wiskundige library met floor-functie. Het optellen van de 80 termen van de som, kan in een simpele loop.
De berekening van f(x) blijkt een speeltuin te zijn voor talloze optimalisatiemogelijkheden. Bepaalde optimalisaties zijn eerder voor de hand liggend, voor andere optimalisaties zal men toch al wat dieper moeten graven. Volgens de legende ligt er zelfs een heuse diamanten-optimalisatie diep verborgen onder de grond.
Het doel van deze wedstrijd is om het beter te doen dan het rechttoe-rechtaan algoritme, en om een zo snel mogelijke implementatie te maken. Het algoritme moet geïmplementeerd worden op de Arduino Nano die door Dekimo gratis ter beschikking gesteld wordt.
Winnen doe je door het bestaande record te verbreken. Het record is de executietijd van een correct werkend algoritme dat op verschillende testwaarden zal getest worden. De executietijd van het record zal bijgehouden worden op de website van Dekimo. Telkens iemand het bestaande record verbreekt, ontvangt die persoon een leuke prijs en wordt (mits toestemming) de naam van de nieuwe recordhouder vermeld op de website.
Deze wedstrijd is uitsluitend voor studenten uit België, Nederland en regio Aachen.
Vragen? Aarzel niet om ons te contacteren via het e-mailadres: studentchallenge at dekimo.com
Let op: dit is een inleidende tekst, je zal de volledige opdracht ontvangen na inschrijving.
Wie het record breekt, voor minstens 6 uur, mag kiezen uit één van onderstaande prijzen:
Deelnemen kan door onderstaand formulier in te vullen.
Om deel te nemen is het noodzakelijk het formulier volledig in te vullen. De adresgegevens en het telefoonnummer hebben we nodig voor de verzending van het pakketje. Je gegevens zullen niet voor andere doeleinden worden gebruikt.
In principe verwachten we een *.ino bestand of een .zip als source-code voor Arduino-firmware.
Opmerking: Er wordt slechts één inzending per deelnemer aanvaard.
Naam | Tijd |
Jente Weyn | 5875 nanoseconden |
Matis De Schutter | 19625 nanoseconden |
Gilles Markvoort | 62313 nanoseconden |
Jelmer David Meuleman | 95125 nanoseconden |
Sander V. (Dekimo employee) | 1887937 nanoseconden |