Aktueller Rekordhalter für die 2021 Student Challenge

Laurens Scheldeman = 1688 ns

Was ist die Dekimo Student Challenge 2021?

Die Student Challenge 2021 ist ein von Dekimo organisierter Wettbewerb zur Programmierung auf einer Embedded-Plattform. Die Herausforderung besteht darin, eine eigene Implementierung auf einem Arduino-Board zu erstellen, um über USB weitergeleitete Anagramme schnell zu erkennen. Der laufende Rekord der Ausführungszeit wird festgehalten und muss übertroffen werden. Ihr Beitrag wird von einer fachkundigen Expertenjury geprüft und freigegeben. Wer den bestehenden Rekord bricht, gewinnt einen schönen Preis. Das Arduino-Board wird von Dekimo kostenlos zur Verfügung gestellt, und Sie können es anschließend auch behalten.

Die Herausforderung:
Es gibt einen erstaunlich originellen Algorithmus, um zu entscheiden, ob zwei Wörter Anagramme voneinander sind oder nicht, basierend auf Primzahlen. Jedem Buchstaben des Alphabets ist eine eindeutige Primzahl zugeordnet, zum Beispiel A=2, B=3, C=5, D=7, E=11, …, Y=97 und Z=101. Von beiden Wörtern werden die zugehörigen Primzahlen der einzelnen Buchstaben miteinander multipliziert. Die beiden Wörter sind dann und nur dann Anagramme voneinander, wenn beide Multiplikationen das gleiche Produkt ergeben.

Zum Beispiel:
– DEKIMO = 7x11x31x23x41x47 = 105794227
– MEDIKO = 41x11x7x23x31x47 = 105794227
– MEDEME = 11³x41²x7 = 15661877

Dass dieser Algorithmus immer funktioniert, ist sehr einfach zu beweisen. Eine Richtung (“Anagramme ergeben das gleiche Produkt”) ist aufgrund der Kommutativität der Multiplikation offensichtlich. Die andere Richtung (“wenn das Produkt gleich ist, dann sind sie Anagramme”) folgt aus dem Hauptsatz der Arithmetik, dass jede natürliche Zahl eine eindeutige Zerlegung in Primfaktoren hat.

Bei längeren Wörtern stößt dieser Algorithmus jedoch schnell auf Probleme. Die Multiplikationen führen zu großen Zahlen, die in einer Softwareimplementierung nicht mehr in Integer-Datentypen passen. Sie können die Probleme ein wenig hinauszögern, indem Sie häufige Buchstaben mit den kleineren Primzahlen verbinden. Oder Sie nehmen den Logarithmus, der Multiplikationen in Additionen und große Produkte in handlichere Summen verwandelt. Allerdings führt keine dieser Varianten zu einer wirklich effizienten Implementierung.

Das Ziel dieses Wettbewerbs ist es, besser zu sein als das, was oben skizziert wurde, und einen schnellen und skalierbaren Algorithmus zu entwerfen, der bestimmt, ob zwei lange Buchstabenketten Anagramme voneinander sind oder nicht. Dieser Algorithmus sollte auf dem Arduino implementiert werden, der von Dekimo kostenlos zur Verfügung gestellt wird.

 

Dieser Wettbewerb ist nur für Studenten aus Region Aachen, Belgien und den Niederlanden.
Haben Sie Fragen? Zögern Sie nicht, uns über die folgende E-Mail-Adresse zu kontaktieren: studentchallenge at dekimo.com
Frist zum Hochladen Ihres Ergebnisses: 09/05/21
Wir werden im Anschluss ein weiteres Gewinnspiel veranstalten, tragen Sie sich hier in unsere Mailingliste ein, damit Sie nichts verpassen.

Wer den Rekord bricht, der mindestens 6 Stunden lang nicht gebrochen wird, darf sich einen der folgenden Preise aussuchen:

  • Arduino Uno Rev3 starter kit
  • Umfassendes Arduino Starter Kit R3
  • Bluetooth speaker JBL Flip 5
  • Headset HyperX Cloud II
  • Tello Drone (DJI)
  • Google Nest Hub 2
  • Google Chromecast 3 + Google Nest mini
  • Ein Spiel deiner Wahl für PC, PS, Xbox oder Switch bij Coolblue

 

Tip: Der Legende nach ist eine Ausführungszeit <1000 ns möglich

Dekimo Student Challenge prizes

Du kannst teilnehmen, indem Sie das untenstehende Formular ausfüllen.

Hole dir hier deinen Arduino mit ausführlicher Anleitung und nimm an der Herausforderung teil!

Um teilzunehmen, musst du das Formular vollständig ausfüllen. Wir benötigen die Adresse und Telefonnummer, um das Paket zu versenden. Dein Daten werden nicht für andere Zwecke verwendet.

 

Hast du die Herausforderung erfolgreich gemeistert? Lade hier dein Ergebnis hoch.

Grundsätzlich erwarten wir eine *.ino-Datei oder ein .zip als Quellcode für die Arduino-Firmware.
Achtung: Es wird nur eine Einsendung pro Teilnehmer akzeptiert.

Scoreboard Student Challenge Rekordhalter

Name Zeit
Laurens Scheldeman 1688 nanosekunden
Cedric Den Haese 7000 nanosekunden
Matis De Schutter 16312 nanosekunden
Maarten C. (Dekimo Employé) 18125 nanosekunden