Current Dekimo Embedded Challenge recordholder
Current Dekimo Embedded Challenge recordholder
Bram Demedts= 50 ns
The goal of this competition is to create a clever and fast algorithm that achieves the set result. The algorithm must be implemented on an Arduino Nano Every, which will be provided free of charge by Dekimo after registration. You can also keep the Arduino after the competition.
The winner is the one who has a correctly working algorithm and that is the fastest on different test vectors chosen by Dekimo. The record scoreboard will be kept on this page. Every time someone beats the existing record, that person will receive a nice prize and, if approved, their name will be listed as the new record holder on our website.
The technical details of the assignment are further explained in the document that will be received after registration.
The operation “factorial” in mathematics probably does not need an introduction. The factorial of a number n is denoted by n! and is the product of all integers from 1 to n (incuding n). Thus, 5! = 1x2x3x4x5 = 120. In combinatorics, this is the number of permutations of 5 elements, or thus the number of possible anagrams of words of 5 letters. In a basic programming course, the factorial is often used to introduce recursion, since n! = n . (n-1)!. Too little is said about the fact that this kind of tail recursion is unnecessarily greedy and inefficient and is better replaced by an iterative loop, but that’s beside the point.
Anyone who has ever calculated factorials knows that the results become very large very quickly. The factorial grows faster than the exponential function. In a manual calculation, the fun stops after the first ten factorials. Microsoft Excel already gives up at 21! because the result no longer fits in a 64-bit data type. Many calculators give up at 70!, a number that is more than one hundred digits long. The built-in Google calculator stops at 171!, a number of over three hundred digits that no longer fits in a 1024-bit datatype.
We are going to start with the Arduino where Google gives up and where Microsoft has long disappeared from the rear view mirror. We are not going to calculate large factorials, as this would be boring and uninspiring. We are going to keep it fun. The Arduino will receive a number string that is already a factorial. In that number string, two consecutive digits will be masked. These digits will have been replaced by ‘xy’. An algorithm needs to be implemented on the Arduino that will calculate the two missing digits x and y.
Let’s take something small and manageable as an example, the factorial of 21, 21!= 51090942171709440000. The Arduino receives as input 510909xy171709440000 and must deduce that this can only be a factorial if xy=42. Clearly, for large numbers such as 999! the method that first calculates the factorial in full is not the ideal solution, or even impossible with the limited resources on the embedded microcontroller.
At first glance, this task may seem impossible. After all, there is no fixed pattern in the numbers of factorials. Yet, with some ingenuity, it is possible to find connections between x and y that allow the solution to be determined unambiguously, without actually having to calculate the factorial.
This competition is only for residents of Belgium and the Netherlands. Questions? Do not hesitate to contact us at the email address: studentchallenge at dekimo.com
To participate, it is necessary to fill in the form. We need the address to send the parcel. Your data will not be used for other purposes.
We expect a .ino file or a .zip as source code for Arduino firmware.
Note: We accept only one entry per participant.
Dekimo will release hints periodically. This way those who find the solution themselves receive a head start. But even those who cannot find the solution without a hint can still get to the desired solution.
Aligendenis qui bla que solupta tempori tiuntur itionsequas.
Aligendenis qui bla que solupta tempori tiuntur itionsequas.
Nog niet beschikbaar
Nog niet beschikbaar
Nog niet beschikbaar
Aligendenis qui bla que solupta tempori tiuntur itionsequas unt perovid quia con numquat uritem faccum quam quiatint voluptatqui sam, vellorpos simintis verae maionest aturibusa qui untus etur sit et quae estiand ucitior iatur? Atectot atemoluptas id mos ped qui conet fugiae vellam, qui cus, sum sit liquae audam, nobis dolecero ipsam quis et, ut officipsunto dolore doluptam quat que niminis essimin venima il il eos desequas volestium rehenis voluptas dolum aut latempere nosanis velectius porate dolut et erepudis quos sedite reheni derum debitis pe eturitium et latur, quasper ecullen debit, sit labo. Anit voluptate pa int aut quam, cuptatemos maion num, est, sumquam eat optiis qui uta verit lam, sitionserit, sunt lanis vendiandit aut ute num et vero ideles atet libus rem ulles nossit volorum cone ni sit, tem que natem sit alite nos dendendis aspi.
Name | Time |
Bram Demedts | 63 ns |
Michiel Van den Berghe | 63 ns |
Lowiek Van den Stockt | 100 ns |
Team Zeus WPI | 100 ns |
Toon Baeyens | 125 ns |
Zander Daninck | 125 ns |
Katrien D. | 187 ns |
Jan Dumon | 250 ns |
Johannes Taelman | 250 ns |
Hans Polders | 310 ns |
Noa Pauwels | 437 ns |
Tom Boschman | 437 ns |
Jelle De Vleeschouwer | 937 ns |
Antoine Poussart | 1250 ns |
Arthur Deleu | 1748 ns |
Kobe Vanfrachem | 1812 ns |
Jens Timmerman | 3938 ns |
Sven Van Laere | 178437 ns |
Menno Vanfrachem | 726125 ns |
Dekimo medewerker | 3080750 ns |