日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

判断手势_手势密码有几种?

發(fā)布時(shí)間:2025/3/19 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 判断手势_手势密码有几种? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前幾天想到一個(gè)有趣的問題,我們每個(gè)手機(jī)都可以設(shè)置手勢密碼,那么手勢密碼一共有幾種呢?

我們先了解下手勢密碼設(shè)置的規(guī)則:密碼必須不小于4個(gè)點(diǎn),點(diǎn)在第一次經(jīng)過時(shí)不允許被跳過。

如圖,我們把每個(gè)點(diǎn)編上序號。

則以下這種是不合法的。

5被連接了兩次

這種是合法的,因?yàn)?被跳過了。而被跳過的點(diǎn)不被記為總點(diǎn)數(shù)。

用數(shù)字表示的話,例如1923則不能為四個(gè)點(diǎn)連接的情況,因?yàn)?和9之間有5,所以實(shí)際上是15923。

如果用純理性分析的話,這無疑是個(gè)極為復(fù)雜的數(shù)學(xué)題,很多數(shù)學(xué)技巧似乎都被限制住。但是,我們有計(jì)算機(jī)這個(gè)無比強(qiáng)大的工具。這里,我選擇用C語言處理。

宏定義

#define SIZE 10000 #define XSIZE 5 #define SIZEX 11111

以五個(gè)數(shù)字組成的密碼舉例,SIZE為

,XSIZE為位數(shù),SIZEX為起始的窮舉數(shù)字。這樣通過改變?nèi)齻€(gè)變量,能得到不同的組合的個(gè)數(shù)。

主函數(shù)部分

void main(){int n = 0;int i = SIZEX, j = 0;for (i; i < SIZE*10; i++) {if(check(i)) n++;}printf("%d",n); }

主函數(shù)部分十分簡單,就是簡單的循環(huán)遍歷。

check函數(shù)部分

int check(int i) {int k = 0, j = SIZE;int a[XSIZE];while (k<XSIZE) {a[k] = i / j;i = i - a[k] * j;j = j / 10;k++;}for (k=0; k < XSIZE; k++) {for (j = k + 1; j < XSIZE; j++) {if (a[k] == a[j]) return 0;}if (a[k] == 0) return 0;}for ( k = 0; k+1< XSIZE; k++){if ((a[k] + a[k + 1]) == 4) {if (!check1(a, k)) return 0;}if ((a[k] + a[k + 1]) == 10) {if (!check1(a, k)) return 0;}if ((a[k] + a[k + 1]) == 16) {if (!check1(a, k)) return 0;}if (a[k] - a[k + 1] == 6 || a[k + 1] - a[k] == 6) {if (!check1(a, k)) return 0;}}return 1; }

該函數(shù)大致分為三個(gè)部分,第一部分,對傳入的i分離i的各個(gè)位數(shù)的數(shù)字,并存入數(shù)組中。第二部分,設(shè)置兩個(gè)循環(huán)判斷數(shù)組中是否有相同的數(shù)字,第三部分,設(shè)置循環(huán),遍歷相鄰的兩個(gè)數(shù)字,判斷這兩個(gè)數(shù)字是否滿足可能非法的條件,即兩個(gè)數(shù)字間是否包含第三個(gè)數(shù)字,然后傳入check1函數(shù),判斷兩個(gè)數(shù)字前是否有中間包含的第三個(gè)數(shù)字,存在的話說明是合法的。

check1函數(shù)

int check1(int *a, int k) {for (int i = 0; i < k; i++) {if (a[i] == (a[k] + a[k + 1]) / 2) return 1;}return 0; }

結(jié)論

運(yùn)行程序,發(fā)現(xiàn)各個(gè)數(shù)字的個(gè)數(shù),其中

4位的有1624個(gè)

5位的有7152個(gè)

6位的有26016個(gè)

7位的有72912個(gè)

8位的有140704個(gè)

9位的有140704個(gè)

總共有389112種!

值得一提的是,6位以下的個(gè)數(shù)甚至每到10000種,所以設(shè)置密碼最好設(shè)置6位以上的,當(dāng)然不怕忘記的話,可以設(shè)置9位的變態(tài)密碼。

完。

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的判断手势_手势密码有几种?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。