J’était quelque peu déçu la semaine dernière en voyant que personne n’avait tenté de résoudre le défi des chiffres et des lettres et j’en cherchais les raisons. Est-ce que le défi était trop complexe ? Le code présenté déroutant ? Franchement, il devait y avoir un peu de tout. Le code de génération pour les chiffres a ceci qu’il propose une façon de vérifier si la solution présentée est valide ou non. En relisant le code, par mon côté philosophe prenant le dessus, j’ai réalisé qu’en fournissant un code qui permet de valider le résultat, j’ai limité les solutions possibles qu’on pouvait générer. En effets, comme vous pouvez le voir dans la solution que j’ai soumis au défi, je n’utilise aucunement le code fournit avec le défi (je m’en suis inspiré, mais non utilisé). Donc, si vous voulez tenter à nouveau votre chance, oubliez le code dans le défi, laissez libre court à votre imagination.
Est-ce que le défi était trop complexe ? À vrai dire, je n’en sais rien ! Après 10 minutes de réflexion, 20 minutes de prototypage, d’étonnement et environ 30 minutes pour obtenir une solution élégante, j’ai obtenu la solution suivante. Est-ce que le code est complexe ? Je ne crois pas. Il est riche en apprentissage sur le language Ruby et j’ai bien l’intention de le décortiquer avec vous. Une grande surprise par rapport à ma solution. Je croyais faire beaucoup d’optimisation, à la limite d’utiliser des threads multiples. Eh bien, non… lorsqu’une solution est disponible, le code se trouve à l’intérieur de 50 secondes sur ma machine… plutôt impressionnant non ? Bon… je retourne à mes autres projets et on se retrouve bientôt pour l’analyse du code de la solution.
Jean-Marc