मुझे अपना Android फ़ोन अनलॉक करने के लिए कितने समय की आवश्यकता होगी?


12

परिदृश्य

मैं पैटर्न मिलान लॉकस्क्रीन का उपयोग कर रहा हूं और मैं अपने पैटर्न को भूल गया। मैं जानना चाहूंगा कि मुझे इसे अनलॉक करने के लिए कितने समय की आवश्यकता होगी। यहां Google की लॉक स्क्रीन के विनिर्देश दिए गए हैं, जिनका उपयोग हम इस चुनौती के लिए करेंगे।

  • हर 5 गलत कोड, उपयोगकर्ता को 30 secondsआगे किसी भी प्रविष्टि से पहले इंतजार करना होगा ।
  • एक पैटर्न में कम से कम शामिल होना चाहिए 4 points(नीचे देखें)

  • एक बिंदु का उपयोग केवल एक बार किया जा सकता है, लेकिन आप इसे कई बार देख सकते हैं (नीचे चित्र देखें): अजीब

यहां, केंद्र बिंदु का केवल एक बार उपयोग किया जाता है, भले ही हम इस विशेष पैटर्न के लिए फिर से उस पर जाएं।

परिकल्पना और तथ्य

हम मान लेंगे कि हम सुपरहीरो हैं और हम किसी भी पैटर्न को बना सकते हैं 1 second, हमें कभी भी खाने या सोने की ज़रूरत नहीं है। हाँ, हम सुपरमैन हैं।

मैं बहुत बदकिस्मत इंसान हूं। "सबसे खराब स्थिति" मेरा दैनिक जीवन है इसलिए मैं जिस पैटर्न का प्रयास करूंगा वह अंतिम सही होगा।

हमें क्या करना होगा?

जो लोग इसे नहीं जानते हैं, उनके लिए एंड्रॉइड (और अब अन्य फोन) 9-पॉइंट मैट्रिक्स पर एक पैटर्न ड्राइंग के माध्यम से फोन को अनलॉक करने की क्षमता प्रदान करता है। इस मैट्रिक्स को निम्नानुसार वर्णित किया जा सकता है:

C(A)  M(B)  C(C)
M(D)  X(E)  M(F)
C(G)  M(H)  C(I)
  • सी "कोने बिंदु" के लिए खड़ा है
  • "मध्य बिंदु" के लिए एम
  • "केंद्र बिंदु" के लिए X
  • मैंने इसे आसान बनाने के लिए बिंदुओं को पहचानकर्ता दिया है

अनुमत प्रत्यक्ष कनेक्शन इस प्रकार हैं:

कोने बिंदु:

कोना

मध्य बिंदु:

मध्य

केंद्र बिंदु :

केंद्र

हालांकि, जैसा कि स्टीववेरील ने कहा है, "एक बार केंद्र का उपयोग किया गया है (और इसलिए अनुपलब्ध है) नीचे बाएं और ऊपर दाएं कोने के बीच सीधा संबंध अस्पष्ट हो जाता है और इसलिए संभव है"। समान प्रत्येक "मध्य बिंदु" के लिए जाता है, उदाहरण के लिए यदि बिंदु बी पहले से ही गिना गया है, तो ए और सी के बीच सीधा संबंध संभव है। यदि उदाहरण के लिए एफ पहले से ही गिना गया है, तो सी और मैं के बीच एक सीधा संबंध संभव है। आदि...

नियम

  • इस चुनौती का मुद्दा यह है कि मानव समय में कितना समय (उर्फ वर्ष / दिन / महीना / घंटा / जो भी आपको मिल रहा है) वापस लौटाना होगा। मुझे इस लानत फोन को अनलॉक करना होगा।
  • आप संभावित वैध पैटर्न की संख्या को हार्डकोड नहीं कर सकते हैं (यह Google भी नहीं है, आप मूर्ख हैं), इसकी गणना करें (यह वास्तव में मजेदार हिस्सा है, है न?)
  • कोड जीत का सबसे छोटा टुकड़ा
  • सौभाग्य !

2
मेरे पास Android नहीं है, लेकिन मैं यह बताना चाहूंगा कि आपका उदाहरण अनुमत प्रत्यक्ष कनेक्शनों का उल्लंघन करता प्रतीत होता है। मैं अनुमान लगा रहा हूं कि एक बार केंद्र का उपयोग किया गया है (और इसलिए अनुपलब्ध हो गया है) नीचे बाएं और ऊपर दाएं कोने के बीच सीधा संबंध असंदिग्ध हो जाता है और इसलिए संभव है।
लेवल रिवर सेंट

1
इस लॉक स्क्रीन के उपयोगकर्ता के रूप में, मैं लगभग पूरी तरह से सुनिश्चित हूं कि पर्याप्त उंगली की सटीकता के साथ, आप किसी भी दो अप्रयुक्त बिंदुओं को जोड़ सकते हैं।
Οurous

4
@ हमारे: कम से कम मेरे फोन पर, यदि आप डॉट को जोड़ने के लिए अपनी उंगली को चारों ओर डॉट्स से जोड़ते हैं, तो बीच में डॉट को अनुक्रम में डाला जाता है और वैसे भी गिना जाता है।
user2357112

1
@steveverrill: आप सही कह रहे हैं, मैंने उस बारे में एक टिप जोड़ी। मुझे आशा है कि आपको कोई आपत्ति नहीं है, मैंने आपको सीधे उद्धृत किया, क्योंकि मुझे लगा कि यह एक अच्छा स्पष्टीकरण था।

1
"आप संभव वैध पैटर्न की संख्या को हार्डकोड नहीं कर सकते हैं" एक अवलोकन योग्य आवश्यकता नहीं है।
तदर्थ गार्फ हंटर

जवाबों:


2

रेम्बु : 197 175 168 167 अक्षर

संख्याओं की एक श्रृंखला के रूप में संयोजन बनाता है (उदाहरण। 12369 शीर्ष-दाएं से ऊपर-दाएं से नीचे-दाएं की ओर है), जाँचता है कि क्या संयोजन वैध है, और यदि यह है तो एक काउंटर बढ़ाता है। इसे चलाने में कुछ समय लग सकता है । फोन को अनलॉक करने के लिए आवश्यक सेकंड की संख्या देता है।

B[[2 13][4 17][6 39][8 79][5 19][5 28][5 37][5 46][a 0]]Fdz[Q1feCb[st[a]paStsC/1 Qa^Qa^e?NNfiAtsC/2 e?NNfiArvTSc/2]]rpJ987653088[StsADj1233iA^e?SuqSf[++K]]adKmp30dvK 5

अचंभित और टिप्पणी:

; for each subarray c: 
; the sequences c/2 and c/3 are invalid before the point c/1 is pressed
; a 0 - a is never in the sequence, therefore 0 is always invalid
b: [[2 13] [4 17] [6 39] [8 79] [5 19] [5 28] [5 37] [5 46] [a 0]]
; checks (most) conditions of validity
f: dz[
    ; set q to 1
    q: 1
    ; foreach array in b as c
    fe c b [
        ; set a to be portion of s before c/1
        st [a] pa s ts c/1
        ; q = q and (a does not contain c/2) and (a does not contain reverse of c/2)
        q: a^ q 
           a^ e? nn fi a ts c/2 
              e? nn fi a ts rv c/2
    ]
]
; repeat 98765308 times, with j = 1 to 98765308
; 987653088 = 987654321 (largest valid combination) - 1234 (smallest valid combination) + 1
rp j 987653088 [
    ; set s to j+1233 (smallest valid combination - 1) as a string
    s: ts ad j 1233 
    ; if f returns trues and s does not contain duplicates, increment k
    i a^ e? s uq s 
          f
     [++ k]
]
; print k (number of combinations) + 30 * (k/5) -> number of seconds needed
ad k mp 30 dv k 5

कार्यक्रम 1 से लेकर (987654321-1233) तक चलता है, 1233 + लूप काउंटर (इसलिए 1234 से 987654321 की जाँच) करता है।

यदि संख्या के 987653088साथ प्रतिस्थापित किया जाता है, 9876-1233या 8643, तो प्रोग्राम को सभी 4-बिंदु संयोजनों के लिए लिया गया समय मिलेगा।

के लिए आउटपुट 9876-1233=8643(4-बिंदु संयोजन):

>> rebmu %combinations.rebmu
== 11344

के लिए आउटपुट 98765-1233=97532(4 और 5-बिंदु संयोजन):

>> rebmu %combinations.rebmu
== 61426

आउटपुट 987654-1233=986421(4,5,6-बिंदु संयोजन):

>> rebmu %combinations.rebmu
== 243532

* 4/5-पॉइंट ने मुझे चलाने में लगभग 8 सेकंड का समय लिया; 4-6 ने लगभग 77 सेकंड का समय लिया। यह 4-9 बिंदु संयोजनों के लिए संयोजनों की संख्या की गणना करने के लिए इसे चलाने के लिए ~ 24 घंटे या उससे अधिक समय लग सकता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.