Matthias Leys
Current Dekimo Embedded Challenge recordholder
Matthias Leys
Current Dekimo Embedded Challenge recordholder
Matthias Leys
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.
Currently there is no deadline for registration or for uploading results.
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.
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.
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.
DatumNaamCircuit 1Circuit 2Circuit 3Circuit 4Circuit 527/04/2024Gert Heyns673—-
21/05/2024 | Matthias Leys | 663 | 823 | 881 | 1174 | 1204 |
28/05/2024 | Kurt Santelé | 686 | 991 | 1622 | 1493 | 2433 |
19/04/2024 | Tom De Puysseleyr | 673 | 1513 | 2723 | 1168 | 3434 |
18/04/2024 | Iris Gijsbers | 669 | 778 | 838 | 935 | – |
10/04/2024 | Tuur Vernieuwe | 682 | 799 | 822 | 1055 | – |
16/04/2024 | Sarah Vandenbroucke | 680 | 1019 | 1336 | 1102 | – |
25/04/2024 | Joey De Pauw | 689 | 1175 | 1778 | 1268 | – |
27/04/2024 | Francis Ide | 737 | 881 | 965 | 1370 | – |
16/05/2024 | Wim Van Loon | 709 | 2621 | 5106 | 1382 | – |
27/04/2024 | Randy Paredis | 676 | 1135 | 1780 | 1503 | – |
14/04/2024 | Thomas De Smedt | 1068 | 1782 | 2554 | 1589 | – |
25/04/2024 | Lars Vagenende | 676 | 845 | 1093 | 1698 | – |
04/04/2024 | Matis De Schutter | 1118 | 1460 | 2044 | 2752 | – |
19/05/2024 | Yannick Van Haver | 807 | 1630 | 4282 | 3143 | – |
14/04/2024 | Thomas Lefever- Teughels | 2731 | 4016 | 3985 | 3928 | – |
09/05/2024 | Timmy Simons | 672 | 785 | – | – | – |
14/04/2024 | Rob Coenen | 675 | 816 | – | – | – |
14/04/2024 | Rob Coenen | 675 | 791 | – | – | – |
27/04/2024 | Bert Van Dooren | 672 | 820 | – | – | – |
25/04/2024 | Tobias Nuyttens | 734 | 863 | – | – | – |
01/06/2024 | Sven Degroote | 672 | 903 | – | – | – |
16/05/2024 | Bruce Helsen | 668 | 937 | – | – | – |
26/04/2024 | Alexandros Karanastasis | 895 | 1040 | – | – | – |
17/04/2024 | Ilja Vandewalle | 733 | 1095 | – | – | – |
16/04/2024 | Tom Boschan | 681 | 1115 | – | – | – |
22/04/2024 | Fleur Slabbinck | 664 | 1116 | – | – | – |
15/04/2024 | Lowie De Smet | 966 | 1143 | – | – | – |
14/04/2024 | Gilles Vancanneyt | 711 | 1230 | – | – | – |
24/04/2024 | Filip Vagenende | 696 | 1256 | – | – | – |
18/04/2024 | Pieter Soetaert | 5023 | 7166 | – | – | – |
23/06/2024 | Wim De Roeve | 662 | – | – | – | – |
16/04/2024 | Niek Van Dommelen | 668 | – | – | – | – |
26/04/2024 | Jeroen Deviaene | 669 | – | – | – | – |
23/04/2024 | Jonas Vanroose | 673 | – | – | – | – |
16/05/2024 | Koen Jacobs | 673 | – | – | – | – |
21/04/2024 | Clement Peleman | 674 | – | – | – | – |
15/05/2024 | Bernd De Baere | 674 | – | – | – | – |
14/04/2024 | Kevin Das | 676 | – | – | – | – |
14/04/2024 | Wim De Vlaminck | 678 | – | – | – | – |
10/04/2024 | Leon Vandenberghe | 679 | – | – | – | – |
11/04/2024 | Sven Bernaerts | 680 | – | – | – | – |
19/01/2025 | Gauthier Bouche | 683 | – | – | – | – |
23/05/2024 | Kevin Renaers | 695 | – | – | – | – |
11/04/2024 | Albert Jorissen | 718 | – | – | – | – |
17/04/2024 | Max Groothuis | 740 | – | – | – | – |
05/05/2024 | Raf Flamand | 777 | – | – | – | – |
13/04/2024 | Wouter Aerts | 789 | – | – | – | – |
23/04/2024 | Seppe Stroobant | 881 | – | – | – | – |
06/04/2024 | Filip Vandenberghe | 6173 | – | – | – | – |