On part de 8 nombres, et à chaque étape, chaque nombre a un peu plus d'une chance sur deux de se dédoubler.
code_part1_naif.py
: Naïf, car met déjà 40 fois plus de temps que
code.py
pour la première partie, et terminerait sans doute la partie 2 après la fin de l'univers.
Une jolie partie cependant : l'utilisation de
divmod
, ainsi que le remplacement d'une valeur du tableau par deux autres en une seule ligne.
nb_digits = len(str(v))
if nb_digits % 2 == 0:
values[i:i+1] = divmod(v, 10**(nb_digits//2))
code_optim.py
, une petite optimisation de code.py
: Léger gain de temps si on ne wrappe pas les valeurs uniques dans un tuple.