• # 13ème jour

    Posté par . En réponse au journal Advent of code 2024. Évalué à 3.

    Aujourd'hui, je me suis dit que c'était le bon jour pour essayer une IA. Voir ce que cela donnerai.

    Je l'ai fait d'abord en Java en utilisant un Mistral (medium) car j'étais persuadé qu'il arriverait à me donner la bonne réponse.
    Après 10min à debug le code, j'avais la bonne réponse pour la première partie.

    Pour la deuxième partie , je lui ai demandé d'utiliser Apache Commons Math. En soit ,le code était correcte.
    Il y avait juste < 100 qui était resté, et il y avait un problème de cast à la sortie Apache Commons Math , où on sort des Double qu'il faut arrondir et non trunc.

    Vu que j'étais persuadé que j'aurai été plus vite avec Python. J'ai fait aussi l'exercice en python avec numpy :)
    J'ai aussi utilisé une IA pour voir et çà fonctionne.
    Par contre, bizarrement, il gérait encore plus mal la lecture des données que j'ai du aussi réecrire complétement.

    def solve_for_machine(xA, yA, xB, yB, xPrize, yPrize):
     # Set up the matrix and vectors
     coefficients = np.array([[xA, xB], [yA, yB]])
     constants = np.array([xPrize, yPrize])
     try:
     # Solve the system of equations
     solution = np.linalg.solve(coefficients, constants)
     a, b = solution
     a = round(a)
     b = round(b)
     verifyX = a*xA + b*xB
     verifyY = a*yA + b*yB
     # Check if the solution is valid
     if 0 <= a and 0 <= b and verifyX == xPrize and verifyY == yPrize:
     return int(3 * a + b)
     except np.linalg.LinAlgError:
     pass
     return -1 # No valid solution found