• [^] # Re: Quelques pensées

    Posté par . En réponse au journal résoudre "trouve 24". Évalué à 2.

    Soit un total de 3072 possibilités. Je me trompe ?

    Quand on fait "échouer" le programme - par exemple ./trouve_24 1 1 1 1 ne parviendra pas à trouver de solution - le programme annonce avoir tester 543 combinaisons. Il a parcourus tout l'espace de recherche, pas de branches coupées (les break dans le code).

    Si je modifie pour avoir 4 opérations (probablement ton calcul), il compte 939 combinaisons.

    J'avoue que je n'ai jamais vraiment trouvé le formule qui permet de calculer le nombre de combinaisons, encore une fois j'ai fait la brute en les comptant une par une :)

    J'étais arrivé à ça mais je ne sais plus comment et je ne retombe pas sur les chiffres donnés par le programme.

    formule

    Après, ça reste une jolie formule :D

    On pourrait envisager d'optimiser le calcul en réutilisant des résultats de sous-arbres.

    On peut mesurer que le programme utilise vraiment peu de mémoire (on pourrait faire un calcul théorique).

    Pour un espace de recherche aussi petit, je ne pense pas qu'une stratégie de cache soit efficace.

    Cependant, j'y vois un intérêt théorique :) : J'aimerai voir un programme qui minimise le nombre de calcul en réutilisant les sous-résultats. J'avais essayé pour 'le compte est bon' car l'espace de recherche est plus grand (733'188 si mon dénombrement est le bon) et que mon CPU était beaucoup plus faible. Mais j'ai laissé tombé devant la complexité et le fait que la méthode brute force donnait un résultat très rapidement.