Szenario
Ich verwende den Pattern Matching Lockscreen und habe mein Pattern leider vergessen. Ich würde gerne wissen, wie viel Zeit ich brauchen werde, um es freizuschalten. Hier sind die Spezifikationen des Google-Sperrbildschirms, die wir für diese Herausforderung verwenden werden.
- Alle 5 falschen Codes muss der Benutzer
30 seconds
vor jeder weiteren Eingabe warten . Ein Muster muss mindestens bestehen aus
4 points
(siehe unten)Ein Punkt kann nur einmal verwendet werden, aber Sie können ihn mehrmals durchgehen (siehe Abbildung rechts unten):
Hier wird der Mittelpunkt nur einmal verwendet, auch wenn wir ihn für dieses bestimmte Muster noch einmal durchgehen.
Hypothese & Fakten
Wir gehen davon aus, dass wir Superhelden sind und dass wir jedes Muster zeichnen können 1 second
, wir müssen nie essen oder schlafen. Ja, wir sind Übermenschen.
Ich bin eine sehr unglückliche Person. "Worst-Case-Szenario" ist mein tägliches Leben, daher ist das Muster, das ich zuletzt versuchen werde, das richtige.
Was müssen wir tun?
Für diejenigen, die es nicht kennen, bietet Android (und jetzt auch andere Handys) die Möglichkeit, das Telefon durch Zeichnen eines Musters auf einer 9-Punkt-Matrix zu entsperren. Diese Matrix kann wie folgt beschrieben werden:
C(A) M(B) C(C)
M(D) X(E) M(F)
C(G) M(H) C(I)
- C steht für "Eckpunkt"
- M für "Mittelpunkt"
- X für "Mittelpunkt"
- Ich habe die Punkte identifiziert, um es einfacher zu machen
Die zulässigen direkten Verbindungen lauten wie folgt:
Eckpunkt:
Mittelpunkt :
Mittelpunkt :
Wie steveverrill jedoch ausführt, "wird eine direkte Verbindung zwischen der unteren linken und der oberen rechten Ecke eindeutig und daher möglich, sobald die Mitte verwendet wurde (und daher nicht mehr verfügbar ist)". Gleiches gilt für jeden "Mittelpunkt", wenn zB der Punkt B bereits gezählt wurde, dann ist eine direkte Verbindung zwischen A und C möglich. Wenn zB F bereits gezählt wurde, ist eine direkte Verbindung zwischen C und I möglich. Etc...
Regeln
- Der Sinn dieser Herausforderung besteht darin, zurückzugeben, wie viel Zeit (in menschenlesbarer Form, auch bekannt als Jahr / Tag / Monat / Stunde / zu welcher Zeit auch immer) ich für das Entsperren dieses verdammten Telefons benötigen werde.
- Sie können die Anzahl der möglichen gültigen Muster nicht fest codieren (nicht einmal Google, Sie Idiot), es berechnen (das ist eigentlich der spaßige Teil, nicht wahr?)
- Das kürzeste Stück Code gewinnt
- Viel Glück !
quelle
Antworten:
Rebmu :
197 175 168167 ZeichenErzeugt Kombinationen als eine Reihe von Zahlen (z. B. 12369 ist von links oben nach rechts oben nach rechts unten), prüft, ob die Kombination gültig ist, und erhöht einen Zähler, wenn dies der Fall ist. Dies kann eine Weile dauern * . Gibt die Anzahl der Sekunden zurück, die zum Entsperren des Telefons benötigt werden.
Enttäuscht und kommentiert:
Das Programm durchläuft eine Schleife von 1 bis (987654321-1233) und überprüft 1233 + Schleifenzähler (daher 1234 bis 987654321).
Wenn die Zahl
987653088
durch9876-1233
oder ersetzt wird8643
, ermittelt das Programm die für alle 4-Punkt-Kombinationen benötigte Zeit.Ausgabe für
9876-1233=8643
(4-Punkt-Kombinationen):Ausgabe für
98765-1233=97532
(4- und 5-Punkt-Kombinationen):Leistung für
987654-1233=986421
(4,5,6-Punkt-Kombinationen):* Bei einem 4/5-Punkt brauchte ich ungefähr 8 Sekunden, um zu rennen. 4-6 dauerte ca. 77 Sekunden. Es kann ~ 24 Stunden oder länger dauern, je nachdem, wer dies ausführt, um die Anzahl der Kombinationen für 4-9 Punktekombinationen zu berechnen.
quelle