シナリオ
私はパターンマッチングロックスクリーンを使用していますが、残念ながらパターンを忘れてしまいました。ロックを解除するのに必要な時間を知りたいです。このチャレンジに使用するGoogleのロック画面の仕様を以下に示します。
- 5つの間違ったコードごとに、ユーザーは
30 seconds
それ以上入力するまで待たなければなりません。 パターンは、少なくとも
4 points
以下で構成されている必要があります(以下を参照)ポイントは1回しか使用できませんが、複数回確認できます(下の画像を参照)。
ここでは、この特定のパターンで再び中心点を通過しても、中心点は1回だけ使用されます。
仮説と事実
私たちはスーパーヒーローであり、で任意のパターンを描くことができると仮定します1 second
。食べたり寝たりする必要はありません。ええ、私たちは超人です。
私は非常に不運な人です。「最悪のシナリオ」は私の日常生活であるため、最後に試みるパターンは正しいものです。
何が必要ですか?
知らない人のために、Android(および現在他の携帯電話)は、9ポイントマトリックスにパターンを描くことで携帯電話のロックを解除する機能を提供しています。このマトリックスは次のように説明できます。
C(A) M(B) C(C)
M(D) X(E) M(F)
C(G) M(H) C(I)
- 「コーナーポイント」を表すC
- 「中間点」のM
- 「中心点」のX
- 簡単にするためにポイントに識別子を付けました
許可される直接接続は次のとおりです。
コーナーポイント:
中間点:
中心点 :
ただし、steveverrillが指摘したように、「中心が使用されると(したがって使用できなくなると)、左下隅と右上隅の間の直接接続が明確になり、したがって可能になります」。同じことがすべての「中間点」にも当てはまります。たとえば、ポイントBがすでにカウントされている場合、AとCの間の直接接続が可能です。たとえば、Fがすでにカウントされている場合、CとIの間の直接接続が可能です。等...
ルール
- この課題のポイントは、このいまいましい携帯電話のロックを解除する必要がある時間(人間が読める形式、年/日/月/時間/何時でも)を返すことです。
- 可能な有効なパターンの数をハードコーディングすることはできません(Googleでさえ、ばかにしないでください)。
- 最短のコードが勝つ
- 幸運を !