• [^] # Re: Pas de force brute, mais soyons bourrins, oh oui, bourrins !

    Posté par (Mastodon) . En réponse au message Avent du Code, jour 21. Évalué à 2. Dernière modification le 21 décembre 2022 à 10:51.

    Donc je vire mon iteration2 puis :

    import sys
    import re
    import sympy
    def iteration(data):
     reg = re.compile(r"^([a-z]{4}): ([^a-z]+?)$", re.MULTILINE)
     while True:
     numbers = {
     a: f"({b})"
     for a, b in reg.findall(data)
     }
     if "root" in numbers:
     return numbers['root']
     data = reg.sub("", data)
     for name, value in numbers.items():
     data = data.replace(name, value)
    data = sys.stdin.read().strip()
    # Exercice 1
    print(eval(iteration(data)))
    # Exercice 2
    data2 = re.sub(r"root: ([a-z]{4}) . ([a-z]{4})", r"root: 1円 - 2円", re.sub(r"humn: \d+", "humn: X", data))
    print(sympy.solve(iteration(data2), 'X'))

    Et voilà !
    Finalement c'était facile à utiliser :D

    • Yth.