Détenteur du record actuel du Défi étudiant 2021

Laurens Scheldeman = 1688 ns

Qu'est-ce que le Défi étudiant Dekimo 2021 ?

Le Défi étudiant 2021 est un concours organisé par Dekimo pour programmer sur une plateforme embarquée. Le défi consiste à créer votre propre implémentation sur une carte Arduino pour reconnaître rapidement les anagrammes transmis par USB. Le record du temps d’exécution sera conservé et devra être dépassé. Votre candidature sera examinée et approuvée par un jury d’experts. Celui qui battra le record existant gagnera un chouette prix. La carte Arduino sera fournie gratuitement par Dekimo, et vous pourrez également la conserver par la suite.

Le défi :
Il existe un algorithme étonnamment original pour décider si deux mots sont des anagrammes l’un de l’autre ou non, basé sur des nombres premiers. Chaque lettre de l’alphabet est associée à un nombre premier unique, par exemple A=2, B=3, C=5, D=7, E=11, …, Y=97 et Z=101. A partir des deux mots, les nombres premiers associés à chaque lettre sont multipliés entre eux. Les deux mots sont des anagrammes l’un de l’autre si et seulement si les deux multiplications donnent le même produit.

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

Il est très facile de prouver que cet algorithme fonctionne toujours. Une direction (“les anagrammes donnent le même produit”) est évidente en raison de la commutativité de la multiplication. L’autre sens (“si le produit est le même, alors ce sont des anagrammes”) découle du théorème principal de l’arithmétique selon lequel chaque nombre naturel a une décomposition unique en facteurs premiers.

Cependant, pour les mots plus longs, cet algorithme rencontre rapidement des problèmes. Les multiplications conduisent à de grands nombres qui ne correspondent plus aux types de données entiers dans une implémentation logicielle. Vous pouvez retarder un peu les problèmes en associant les lettres fréquentes aux petits nombres premiers. Vous pouvez aussi utiliser le logarithme, qui transforme les multiplications en additions et les grands produits en sommes plus faciles à gérer. Cependant, aucune de ces variations ne conduit à une mise en œuvre réellement efficace.

Le but de ce concours est de faire mieux que ce qui est décrit ci-dessus, et de concevoir un algorithme rapide et évolutif pour déterminer si deux longues chaînes de lettres sont des anagrammes l’une de l’autre ou non. Cet algorithme doit être implémenté sur l’Arduino qui est fourni gratuitement par Dekimo.

 

Ce concours est ouvert uniquement aux étudiants de Belgique, des Pays-Bas et de la région d’Aix-la-Chapelle.
Des questions ? N’hésitez pas à nous contacter via l’adresse e-mail suivante : studentchallenge at dekimo.com
Date limite pour télécharger votre résultat : 05/09/21
Nous organiserons un autre concours par la suite, abonnez-vous ici à notre liste de diffusion pour être sûr de ne rien manquer.

Celui qui battra le record, pendant au moins 6 heures, pourra choisir l’un des prix ci-dessous :

  • Kit de démarrage Arduino Uno Rev3
  • Kit de démarrage Arduino étendu R3
  • Enceinte Bluetooth JBL Flip 5
  • Casque HyperX Cloud II
  • Drone Tello (DJI)
  • Google Nest Hub 2
  • Google Chromecast 3 + Google Nest mini
  • Jeu de votre choix pour PC, PS, Xbox ou Switch chez Coolblue


Tip : Selon les légendes, un temps d’exécution <1 000 ns est possible

Dekimo Student Challenge prizes

Inscrivez-vous ici

 

Obtenez votre Arduino ici avec des instructions détaillées et relevez le défi !

Pour participer, vous devez remplir le formulaire en entier. Nous avons besoin de l’adresse et du numéro de téléphone pour expédier le colis. Vos données ne seront pas utilisées à d’autres fins.

 

Le défi a réussi? Téléchargez votre résultat ici.

Nous attendons un fichier * .ino ou un .zip pour le code source pour le firmware Arduino.
Remarque : Nous n’acceptons qu’une seule participation par participant.

Le tableau de bord du Défi étudiant

Nom Temps
Laurens Scheldeman 1688 nanosecondes
Cedric Den Haese 7000 nanosecondes
Matis De Schutter 16312 nanosecondes
Maarten C. (Dekimo Employé) 18125 nanosecondes