Scénario
J'utilise un écran de verrouillage correspondant à un motif et j'ai malheureusement oublié mon motif. Je voudrais savoir combien de temps il me faudra pour le déverrouiller. Voici les spécifications de l'écran de verrouillage de Google, que nous utiliserons pour ce défi.
- Tous les 5 mauvais codes, l'utilisateur doit attendre
30 seconds
avant toute nouvelle entrée. Un modèle doit au moins consister en
4 points
(voir ci-dessous)Un point ne peut être utilisé qu'une seule fois, mais vous pouvez le parcourir plusieurs fois (voir l'image ci-dessous):
Ici, le point central n'est utilisé qu'une seule fois, même si nous le repassons pour ce motif particulier.
Hypothèse et faits
Nous supposerons que nous sommes des super-héros et que nous pouvons dessiner n'importe quel motif 1 second
, nous n'avons jamais besoin de manger ou de dormir. Oui, nous sommes surhumains.
Je suis une personne très malchanceuse. "Le pire des cas" est ma vie quotidienne, donc le schéma que je vais essayer en dernier sera le bon.
Que devons-nous pwn?
Pour ceux qui ne le savent pas, Android (et d'autres téléphones maintenant) offre la possibilité de déverrouiller le téléphone en dessinant un motif sur une matrice à 9 points. Cette matrice peut être décrite comme suit:
C(A) M(B) C(C)
M(D) X(E) M(F)
C(G) M(H) C(I)
- C signifie "point d'angle"
- M pour "point médian"
- X pour "point central"
- J'ai donné des identifiants aux points pour le rendre plus facile
Les connexions directes autorisées sont les suivantes:
Point d'angle:
Point médian:
Point central :
Cependant, comme l'a souligné steveverrill, "une fois que le centre a été utilisé (et devient donc indisponible), une connexion directe entre le coin inférieur gauche et le coin supérieur droit devient sans ambiguïté et donc possible". Il en va de même pour chaque "point médian", si par exemple le point B a déjà été compté, alors une connexion directe entre A et C est possible. Si par exemple F a déjà été compté, alors une connexion directe entre C et I est possible. Etc...
Règles
- Le but de ce défi est de restituer combien de temps (sous forme lisible par l'homme, alias année / jour / mois / heure / quelle que soit l'heure que vous trouverez), j'aurai besoin de déverrouiller ce putain de téléphone.
- Vous ne pouvez pas coder en dur le nombre de modèles valides possibles (ne le faites même pas sur Google, vous tromper), le calculer (c'est en fait la partie amusante, n'est-ce pas?)
- Le morceau de code le plus court gagne
- Bonne chance !