Posté par Guillaume.B .
En réponse au journal Advent of code 2024.
Évalué à 1.
Dernière modification le 09 décembre 2024 à 13:40.
Je n'ai pas l'impression que l'optimisation d'Obsidian soit la même que la mienne.
Je vais illustrer mon algo par mon exemple pour la partie 2.
Supposons qu'on a la liste [2345, 23, 35, 10] avec 2345 comme valeur cible.
On part de 2345 et on regarde le dernier nombre à savoir 10.
2345 n'est pas divisible par 10 et 10 n'est pas un suffixe du mot 2345.
Donc la seule opération que l'on peut faire est l'addition.
On va donc chercher récursivement si la liste [2345-10=2335, 23, 35] admet une solution.
Regardons de nouveau le dernier nombre 35.
35 est un suffixe de 2335 mais 35 ne divise pas 2335.
Donc on peut faire une addition ou une concaténation.
Si on fait une addition, on va chercher si [2335 - 35, 23] admet une solution et
si on fait une concaténation, on va chercher si [23, 23] admet une solution.
[2335 - 35, 23] n'admet pas de solution mais [23, 23] admet clairement une solution donc la liste [2345, 23, 35, 10] admet une solution.
[^] # Re: 7ème jour, un peu de répit
Posté par Guillaume.B . En réponse au journal Advent of code 2024. Évalué à 1. Dernière modification le 09 décembre 2024 à 13:40.
Je n'ai pas l'impression que l'optimisation d'Obsidian soit la même que la mienne.
Je vais illustrer mon algo par mon exemple pour la partie 2.
Supposons qu'on a la liste [2345, 23, 35, 10] avec 2345 comme valeur cible.
On part de 2345 et on regarde le dernier nombre à savoir 10.
2345 n'est pas divisible par 10 et 10 n'est pas un suffixe du mot 2345.
Donc la seule opération que l'on peut faire est l'addition.
On va donc chercher récursivement si la liste [2345-10=2335, 23, 35] admet une solution.
Regardons de nouveau le dernier nombre 35.
35 est un suffixe de 2335 mais 35 ne divise pas 2335.
Donc on peut faire une addition ou une concaténation.
Si on fait une addition, on va chercher si [2335 - 35, 23] admet une solution et
si on fait une concaténation, on va chercher si [23, 23] admet une solution.
[2335 - 35, 23] n'admet pas de solution mais [23, 23] admet clairement une solution donc la liste [2345, 23, 35, 10] admet une solution.
J'obtiens un gain non pas de x10 mais de x60.