Je sais, je sais... On fait ce que l'on peut.![]()
Je sais, je sais... On fait ce que l'on peut.![]()
POur la rapidité ok. Par contre, le programme a été fait pour classer les grilles et aider les joueurs et de ce côté il marche très efficacement.
Ceci étant, j'essaierais de comparer le code "concurrent" avec le mien.
Sur ce coup, oui, j'avoue...
Difficile de résister à la tentation de vous charrier un peu.![]()
Désolé, c'est pas bien, je sais
Ceci dit, à partir du moment où le code de Peter Norvig existe et qu'il est libre de droits... Le recoder? Même pour le fun, je ne m'y aventurerais pas!
Je copierai intégralement. Il y a quelques modifs pour en faire un module séparé et l'intégrer a un IHM. Il a fait un travail super intéressant qui a demandé pas mal de temps. Améliorer ce qu'il a déjà fait, c'est plusieurs jours voire semaines (pensez tests) sans certitude de faire mieux.
- W
Autre intérêt de mon programme : il peut résoudre les sudokus comme le feraient un humain pas à pas (il me reste un dernier point à régler mais ce sera pour plus tard).
Au passage, qu'elle la meilleure façon de tester un programme ? J'utilise time.time(). Si mes souvenirs sont bons ce n'est pas terrible. Non ?
Si vous êtes sous Windows, time.clock sera plus précis que time.time.
Sous UNIX, ca ne mesure pas la même chose.
La 3.3 vient avec un time.perf_counter qui retourne la plus grande résolution disponible de la plate-forme et mesure le "wall time" (comme time.time).
Le "wall time" est une mesure macroscopique.
Comme nous fonctionnons sur des systèmes multi-tâches, sa valeur intègre aussi le temps passé a attendre la disponibilité du CPU qui peut avoir été alloué à d'autres activités. Sous Windows, vu le nombre de services qui se réveillent n'importe quand, sa variabilité peut être importante.
Il serait préférable de mesurer (aussi) temps CPU consommé (time.process_time). Il sera moins précis mais plus significatif côté performance d'un design.
Une mesure macroscopique ne donne pas de pistes côté axes d'améliorations: çà dit juste si on est bon par rapport à des attentes.
Si on veut savoir où on passe du temps (et quoi améliorer), il faut passer par des modules comme Profile/cProfile.
- W
Partager