前幾天想到一個有趣的問題,我們每個手機都可以設置手勢密碼,那麼手勢密碼一共有幾種呢?
我們先瞭解下手勢密碼設置的規則:密碼必須不小於4個點,點在第一次經過時不允許被跳過。
如圖,我們把每個點編上序號。
則以下這種是不合法的。
555b336f309538bde8de59a311cc804b
5被連接瞭兩次
而
這種是合法的,因為5被跳過瞭。而被跳過的點不被記為總點數。
用數字表示的話,例如1923則不能為四個點連接的情況,因為1和9之間有5,所以實際上是15923。
如果用純理性分析的話,這無疑是個極為復雜的數學題,很多數學技巧似乎都被限制住。但是,我們有計算機這個無比強大的工具。這裡,我選擇用C語言處理。
宏定義
#define SIZE 10000
#define XSIZE 5
#define SIZEX 11111