by Thomas_94 » Sun Jul 12, 2009 2:30 pm
J'explique comment faire un "1 minute solver".
Bon déjà on se débrouille pour comprendre l'algo de mosquitox et savoir ce qu'il y a dans son tableau bizarre.
Une fois qu'on a compris, on recherche le mot de passe le plus long possible.
Donc on prend le chiffre le plus petit et on lui applique l'algo de vérification jusqu'à voir quand est-ce-qu'il dépasse le code souhaité.
On voit donc que le mdp fait max 12 caractères.
Malheureusement pour l'algo qui va suivre, ça impliquerait 2Go de RAM, et moi je peux pas, je me contente de dire que le max c'est 11 caractères max, en espérant que ça passe (ça passera bien entendu :lol: ).
Maintenant dans le bruteforce, quand on fait une combinaison, exemple:
05AfE
On a besoin pour continuer la combinaison de:
-le score actuel (voir algo de vérification de mosquitox)
-la position (ici 5, en partant de 0)
Notre fonction récursive (sauf si vous faites un itératif) contiendra donc 2 paramètres.
Le problème, c'est qu'il y a 62^11 possibilités, pour réduire ça, on va faire ce qu'on appelle un dynamique.
C'est à dire que l'on va retenir en mémoire les situations similaires (où il y a le même score et la même position), pour pas avoir à les regérer.
Ce qui réduit donc le nombre de possibilités à 11*174153441 ~= 2 milliards (c'est le nombre de différentes possibilités à gérer).
C'est très acceptable, et ça prend une minute.
EDIT:
En faite vaut ptet mieux regarder le nombre de lettres minimales :P ...