数字38用简单的九宫格解锁图案图案解锁

手机锁屏九宫格数字_百度知道手机的九宫格图案解锁总共能绘出多少种图案?
需要满足的要求有:至少经过四个点;不能重复经过同一个点;路径上的中间点不能跳过(如从1到3一定会经过2);如果中间的点是之前已经用过的,那么这个点就可以被跳过(如213,因为2已经被用过,1就可以越过2与3连接,132是不允许的)。
from itertools import chain, permutations
impossible = {'13': '2',
'46': '5',
'79': '8',
'17': '4',
'28': '5',
'39': '6',
'19': '5',
'37': '5',
'31': '2',
'64': '5',
'97': '8',
'71': '4',
'82': '5',
'93': '6',
'91': '5',
'73': '5'}
def counts():
iterlst = chain(*(permutations('', i) for i in range(4, 10)))
for i in iterlst:
stri = ''.join(i)
for k, v in impossible.items():
if k in stri and v not in stri[:stri.find(k)]:
count += 1
return count
print(counts())#389112
我用python写了段代码,先计算出所有大于四个数字的所有排列组合,然后从中剃除穿过中间那个数字的组合,剩下的既为符合要求的代码。例如13组合是不可能存在的,因为它会穿过2,19组合也不可能存在,因为它会穿过5,总共有16个这样的组合。但是假如中间这个数字已经用过了,是可以穿过的,比如213,2已经用过了,1是可以穿过2与3连接的。如此筛选以后,就得到正确答案389112了。
以下引用自果壳网:Android 的密码是 3 × 3 点阵中的一条路径,这条路径可以交叉,可以“走日字”,几乎是无所不能(只要不经过重复点),但却有一个例外:路径不允许跳过途中必须要经过的点。例如, 如果从左上角的点连接到右上角的点,中间的那个点会被自动地加进路径里。但麻烦就麻烦在,这个规则本身也有一个值得注意的地方:如果中间的点是之前已经用过的,那么这个点就可以被跳过去了。我们不妨把点阵中的九个点分别用数字 1 到 9 编号。按照上述规则, 都是不合法的,但 2 则都是可行的。死理性派这下苦恼了,似乎五花八门的组合数学模型在这里都派不上用场。怎么办呢?别急,我们还有强大的计算机帮忙。下面,有请编辑最爱的数学软件 Mathematica 登场。首先,让我们生成所有 985 824 种没有限制的排列组合:再记下不能直接连接的点对:由此生成不合法的排列规则:从全部排列组合中删掉不合法的,便得到了所有可能的 Android 密码了:Android 密码一共有多少种可能性呢?让我们来看看:这样,我们就得到了一个准确的数字:在 Android 系统上一共有 389 112 种可能的密码,只占之前估计的密码数上限的 1/3 左右。
我来个R语言版本 :)我的计算过程如下:(一)确定手势密码的规则a)
按1至9编码,则必须要4至9个数字。b)
不能跳过中间的数字。不合法的情况:c)
当中间的那个点是之前用过的,则这个点可以被跳过去。(二)根据规则用R语言编程计算。1)
首先,根据规则a)计算所有排列的上限。即:9×8×7×…×1+9×8×7×…×2+?+9×8×7×6=9856242)
根据规则b),构造不合法的情况集合。3)
结合规则b)和c),使用正则表达式函数,统计不合法的情况个数。4)
排除不合法的情况个数,最终得到总共的合法手势密码个数为:389112.我的R代码如下(R代码的效率有点低,运行耗时两个小时左右):#加载需要的包
library(stringr)
library(dplyr)
library(gtools)
#######################
#生成所有的排列组合上限
#共9×8×7...×1 + 9*8*7*...*2 + ...+ 9*8*7*6 =
for(i in 1:6){
sum &- sum+prod(i:9)
#######################
## 生成所有的候选排列组合
x &- c(1:9)
Permus &- list()
Permus&-lapply(9:4,function(i){
permutations(n = 9, r = i, v = x)
######################
# 把所有的排列情况矩阵转换成字符串集,并转换成一个字符串向量
matrix_to_string &- function(inmat){
apply(inmat,1,paste,collapse = "")
strings&-list()
strings&-lapply(Permus, matrix_to_string)
strings&-unlist(strings)
str(strings)
#####################
# 不合法的情况子集
Illegal&-c("13","46","79","17","28","39",
"19","37","31","64","97","71",
"82","93","91","73")
CrossNum&-as.character(c(2,5,8,4,5,6,5,5,2,5,8,4,5,6,5,5))
#####################
# 统计不合法的情况个数
for(i in 1:length(strings)){
for(j in 1:length(Illegal)){
IllegalCode&-str_locate(string = strings[i],pattern = Illegal[j]) %&%
if(!is.na(IllegalCode[1]) & (!str_detect((str_sub(string = strings[i],end = IllegalCode[1])),
CrossNum[j]))){
count &- count + 1
sum - count
用matlab写了几行算了下,答案是389112种。s = struct('end_points', {'13'; '31'; '46'; '64'; '79'; '97'; '17'; ...
'71'; '28'; '82'; '39'; '93'; '37'; '73'; '19'; '91'}, ...
'mid_point', {'2'; '2'; '5'; '5'; '8'; '8'; '4'; '4'; '5'; ...
'5'; '6'; '6'; '5'; '5'; '5'; '5'});
for i = 4:9
c = nchoosek('', i);
for j = 1:size(c, 1)
p = perms(c(j, :));
for k = 1:size(p, 1)
for l = 1:size(s, 1)
if ~isempty(strfind(p(k, :), s(l).end_points)) && ...
isempty(strfind(p(k, (1:(strfind(p(k, :), ...
s(l).end_points) - 1))), s(l).mid_point))
n = n + 1;
num = num + 1;
贴个c代码,轻拍#include &stdio.h&int res[];int cnt=0,t=0;int genarry(int*a,int n[9],int l,int s){
for(i=0;i&s;i++)res[cnt][i]=a[i-s];
for(i=0;i&9;i++){
if(n[i]==0)
genarry(a+1,n,l-1,s);
return 0;}int select(){
int taboo[16][2]={
{1,3},{3,1},
{4,6},{6,4},
{7,9},{9,7},
{1,7},{7,1},
{2,8},{8,2},
{3,9},{9,3},
{1,9},{9,1},
{3,7},{7,3}
for(i=0;i&i++){
int j,flag=0;
for(j=0;res[i][j+1]!=0&&!j++){
for(k=0;k&16&&!k++){
if(res[i][j]==taboo[k][0]&&res[i][j+1]==taboo[k][1]){
for(l=0;l&j;l++){
if(res[i][l]==(taboo[k][0]+res[i][j+1])/2)flag=0;
res[i][9]=-1;
return cnt-t;}int main(){
int a[9],n[9],i,
for(i=0;i&9;i++)n[i]=1;
for(i=4;i&10;i++)
genarry(a,n,i,i);
count=select();
printf("%d\n",count);
return 0;}把结果打出来随机选一个做解锁会不会安全一点
终于有机会见识了聪明的程序员们究竟是怎么一群人。 你们真棒!
dfs代码,用标记数组标记不合法的情况,在所有的排列里面剔除不合法的情况,暴力枚举。#include&iostream&#include&cstring&int mark[10][10], vis[20];int num[20], ans = 0,void dfs(int cnt){
if(cnt &= 5)
for(int i = 1; i&=9; i++)
if(!vis[i])
if(mark[i][num[cnt-1]] && !vis[mark[i][num[cnt-1]]])
num[cnt] =
vis[i] = 1;
dfs(cnt+1);
vis[i] = 0;
}}int main(){
num[0] = 0;
memset(mark, 0, sizeof(mark));
mark[1][3] = 2, mark[1][7] = 4, mark[1][9] = 5;
mark[2][8] = 5, mark[3][7] = 5, mark[3][9] = 6;
mark[4][6] = 5, mark[7][9] = 8;
for(int i = 1; i&=9; i++)
for(int j = i+1; j&=9; j++)
mark[j][i] = mark[i][j];
memset(vis, 0, sizeof(vis));
cout&&ans&&
return 0;}是389112种
#include&stdio.h&
#define ABS(a) (((a)&=0)?(a):-(a))
#define HALF(a,b) ((a)%3 + (b)%3)/2 + 3*(((a)/3 + (b)/3)/2)
bool flags[9]={true,true,true,true,true,true,true,true,true};
bool check(int a,int b)
if(a%3 == b%3 && ABS(a/3 - b/3) == 2 && flags[HALF(a,b)])return false;
if(a/3 == b/3 && ABS(a%3 - b%3) == 2 && flags[HALF(a,b)])return false;
if(ABS(a%3 - b%3) == 2 && ABS(a/3 - b/3) == 2&& flags[HALF(a,b)])return false;
return true;
int count(int j,int pre,int counter)
for(int i=0;i&9;i++){
if(flags[i] && check(pre,i)){
flags[i] = false;
counter = count(j+1,i,counter);
flags[i] = true;
return (j&2)?counter + 1:counter;
int main()
flags[0] = false;
int a = count(0,0,0)*4;
flags[1] = false;flags[0] = true;
int b = count(0,1,0)*4;
flags[4] = false;flags[1] = true;
int c = count(0,4,0);
printf("%d\n",a+b+c);
根据对称性做了优化。
贴一个JAVA代码: public static void main(String[] args) {
int res=counts();
System.out.println(res);
public static int counts(){
HashMap&String,String& map = new HashMap&String,String&();
ArrayList&String& permute = new ArrayList&String&();
for(int i=4;i&=9;i++){
permute.addAll(permutation(9,i));
System.out.println(permute.size());
map.put("13", "2");
map.put("46", "5");
map.put("79", "8");
map.put("17", "4");
map.put("28", "5");
map.put("39", "6");
map.put("19", "5");
map.put("37", "5");
map.put("31", "2");
map.put("64", "5");
map.put("97", "8");
map.put("71", "4");
map.put("82", "5");
map.put("93", "6");
map.put("91", "5");
map.put("73", "5");
int count = permute.size();
for(String cur :permute){
for (Entry&String, String& entry : map.entrySet()){
String key = entry.getKey();
String value = entry.getValue();
if(cur.contains(key) && (cur.indexOf(value) == -1 || cur.indexOf(value) & cur.indexOf(key)) ){
public static ArrayList&String& permutation(int n,int k){
ArrayList&String& res = new ArrayList&String&();
for(int i =1;i&=n;i++){
StringBuilder temp= new StringBuilder();
temp.append(i);
BFS(n,k,temp,1,i,res);
public static void BFS(int n, int k,StringBuilder cur,int depth, int x,ArrayList&String& res){
if(depth == k){
res.add(new String(cur));
for(int i=1;i&=n;i++){
if(cur.indexOf(String.valueOf(i)) &=0)
cur.append(i);
BFS(n,k,cur,depth+1,i,res);
cur.deleteCharAt(cur.length()-1);
pascal语言不知有谁知道没有...var flag:array[0..9] plus:array[0..9,0..9]ans,i:procedure search(t,count,pre:longint);var k:beginif count=t then begin inc(ans); endelse if count&for k:=1 to 9 doif flag[k] and not(flag[plus[pre,k]] or flag[plus[k,pre]])
thenbeginflag[k]:=search(t,count+1,k);flag[k]:=endelse if flag[k] and (flag[plus[pre,k]] or flag[plus[k,pre]]) //middle does not used
begin //MAIN
fillchar(flag,sizeof(flag),true);
fillchar(plus,sizeof(plus),0);
plus[1,3]:=0;
plus[7,9]:=8;
plus[1,7]:=4;
plus[2,8]:=5;
plus[9,3]:=6;
plus[1,9]:=5;
plus[3,7]:=5;
plus[4,6]:=5;
for i:=4 to 9 do
search(i,0,0);
writeln(ans);
已有帐号?
无法登录?
社交帐号登录【情侣锁屏】情侣必备小清新文字九宫格锁屏,唯美非主流意境小清新,暖暖的幸福,给您温馨浪漫的感觉。【情侣锁屏】情侣必备小清新文字九宫格锁屏精彩为你呈现,一款好看的动态壁纸。本壁纸收集了好看的炫酷非主流动态壁纸。壁纸自带了梦幻泡泡,心形以及星星的特效。这块动态壁纸通过简单个性化的设置,即可让您的手机桌面更加独特与美观!赶紧下载一款适合你的情侣必备小清新酷炫九宫格锁屏吧。这么一款超热门的非主流小清新炫酷锁屏,宅男屌丝必备锁屏,安全必备锁屏,百度360热门锁屏,赶快入手吧!锁屏新版上线,功能强大,界面美观,在设置界面可以个性化设置,欢迎大家提出宝贵意见。G锁屏(gsuoping) 
 文章为作者独立观点,不代表微头条立场
的最新文章
【明星锁屏】非主流可爱杨幂九宫格锁屏,内地四小花旦之一的杨幂,拥有超高人气的她,成为了大多数年轻一代喜欢的演【奔跑锁屏】奔跑吧少年angelababy杨颖锁屏。奔跑吧少年angelababy杨颖唯美密码里每一张非主流【胡巴锁屏】捉妖记超萌胡巴九宫格锁屏,电影《捉妖记》于日上映,由“怪物史瑞克之父”许诚毅执【情侣锁屏】情侣必备小清新文字九宫格锁屏,唯美非主流意境小清新,暖暖的幸福,给您温馨浪漫的感觉。【情侣锁屏】【黑色锁屏】非主流黑色我像个傻子可爱字体锁屏【游戏壁纸】Dota2之8090后锁屏反馈群:请点击阅读全文~G锁屏APP官方网站偶像来了赵丽颖九宫格锁屏反馈群:请点击阅读全文~天天酷泡动感网红美眉锁屏反馈群:请点击阅读全文~极限挑战张艺兴九宫格锁屏反馈群:请点击阅读全文~【明星锁屏】非主流可爱杨幂九宫格锁屏,内地四小花旦之一的杨幂,拥有超高人气的她,成为了大多数年轻一代喜欢的演G锁屏APP官方网站【花千骨赵丽颖】Q版人物最美古风反馈群:请点击阅读全文~【文字锁屏】青春散场记忆不朽。致我们终将逝去的青春。致青春主题锁屏new必须得用,还有九宫格密码,都可以设置G锁屏APP官方网站而投来了羡慕的目光。欢迎大家反馈意见和建议。反馈群:软件介绍:【明星锁屏】杉杉来了男神张翰九宫格锁屏,《杉杉来了》是由张翰、赵丽颖等主演的一部青春浪漫爱情偶像剧【明星】TFBOYS王俊凯帅气九宫格锁屏,王俊凯TF家族(Teen Family)新晋偶像男团TFBOYS队【麦拉风】梦幻可爱麦拉风公主九宫格锁屏,麦拉风是一个非常卡哇伊的蘑菇头短发妹,麦拉风的性格有些古怪,时而善变【美少女】超可爱动漫美少女九宫格锁屏EXO帅萌偶像天团九宫格文字锁屏。Exo偶像团体一出现便受到了网友们的支持,当然包括这款锁屏了啊,成为百度和TFBOYS王俊凯九宫格锁屏。日,TF家族官方发布TFBOYS形象宣传片《十年》,由王俊凯、【熊出没】熊出没奔跑吧闯关熊大快跑奔跑锁屏,这款锁屏专门为00后弟弟MM准备的奇特防隐私密码锁屏。个性,精美【EXO】非主流黑色最爱exo九宫格文字锁屏浪漫七夕九宫格锁屏反馈群:请点击阅读全文~天天爱清纯美眉九宫格锁屏G锁屏APP官方网站网红美眉好清纯九宫格锁屏芭比娃娃来找茬九宫格锁屏G锁屏APP官方网站【EXO】非主流黑色最爱exo九宫格文字锁屏。非主流黑色最爱exo九宫格文字锁屏手机壁纸,更显手机高贵帅气时【芭比】非主流超可爱芭比公主密码主题锁屏。可爱的芭比娃娃,喜欢芭比娃娃吗?那么就来下载芭比娃娃锁屏吧!喜欢非【TFBOYS】TFBOYS帅气男孩组合壁纸锁屏,日,TF家族官方发布TFBOYS形象宣传片【大眼美眉】非主流大眼美眉唯美密码锁屏TFBOYS王俊凯九宫格锁屏。日,TF家族官方发布TFBOYS形象宣传片《十年》,由王俊凯、爸爸去哪儿超可爱九宫格锁屏,爸爸去哪儿里萌娃来袭,kimi和小伙伴们的沙滩欢快时光~~这是一个电视节目,《爸非主流伤感黑色九宫格文字锁屏。90后炫酷黑色背景动态壁纸,黑色代表着神秘而又特别,给人一种酷酷的感觉。非主流【萌小希】超萌小希卡通可爱九宫格动态锁屏TFBOYS王俊凯九宫格锁屏。日,TF家族官方发布TFBOYS形象宣传片《十年》,由王俊凯、爸爸去哪儿超可爱九宫格锁屏,爸爸去哪儿里萌娃来袭,kimi和小伙伴们的沙滩欢快时光~~这是一个电视节目,《爸非主流伤感黑色九宫格文字锁屏。90后炫酷黑色背景动态壁纸,黑色代表着神秘而又特别,给人一种酷酷的感觉。非主流【萌小希】超萌小希卡通可爱九宫格动态锁屏【EXO】非主流黑色最爱exo九宫格文字锁屏。非主流黑色最爱exo九宫格文字锁屏手机壁纸,更显手机高贵帅气时【芭比】非主流超可爱芭比公主密码主题锁屏。可爱的芭比娃娃,喜欢芭比娃娃吗?那么就来下载芭比娃娃锁屏吧!喜欢非【TFBOYS】TFBOYS帅气男孩组合壁纸锁屏,日,TF家族官方发布TFBOYS形象宣传片【大眼美眉】非主流大眼美眉唯美密码锁屏【明星锁屏】非主流可爱杨幂九宫格锁屏,内地四小花旦之一的杨幂,拥有超高人气的她,成为了大多数年轻一代喜欢的演【奔跑锁屏】奔跑吧少年angelababy杨颖锁屏。奔跑吧少年angelababy杨颖唯美密码里每一张非主流【胡巴锁屏】捉妖记超萌胡巴九宫格锁屏,电影《捉妖记》于日上映,由“怪物史瑞克之父”许诚毅执【情侣锁屏】情侣必备小清新文字九宫格锁屏,唯美非主流意境小清新,暖暖的幸福,给您温馨浪漫的感觉。【情侣锁屏】gsuoping以网络资源及自定义设置为一体的锁屏工具,及时收取用户问题反馈和最新资源发布。热门文章最新文章gsuoping以网络资源及自定义设置为一体的锁屏工具,及时收取用户问题反馈和最新资源发布。扫描下载MIUI论坛APP
在线时间3 小时
版本5.9.24
积分 70, 距离下一级还需 130 积分
积分 70, 距离下一级还需 130 积分
机型红米Note2 移动/标准
MIUI版本5.9.24
刚入手的红米note2, 由于专业app的关系,把系统设置成了英文,而且要求6位的锁屏密码。
但是这个全键盘的输入实在太麻烦了,以前有9宫格的解锁密码,要在哪里设置呢?
(188.61 KB, 下载次数: 3)
10:47 上传
分享到微信朋友圈
打开微信,点击底部的“发现”,使用 “扫一扫” 即可将网页分享到我的朋友圈。
已关联5个BUG提交人处理状态
经验3705 米
在线时间26 小时
版本6.9.12
机型小米Note
签到次数66
MIUI版本6.9.12
数字密码就是啊
经验3705 米
在线时间26 小时
版本6.9.12
机型小米Note
签到次数66
MIUI版本6.9.12
只不过密码只能4位
经验9828 米
在线时间208 小时
版本6.8.10
积分 13064, 距离下一级还需 6936 积分
积分 13064, 距离下一级还需 6936 积分
机型红米Note-4G版
签到次数56
MIUI版本6.8.10
沙發正解:)
经验7282 米
在线时间13 小时
机型小米Note
签到次数67
MIUI版本6.9.7
我用的就是数字密码,别的太麻烦,而且数字密码很有动感
在线时间3 小时
版本5.9.24
积分 70, 距离下一级还需 130 积分
积分 70, 距离下一级还需 130 积分
机型红米Note2 移动/标准
MIUI版本5.9.24
只不过密码只能4位
以前的MIUI支持6位的啊,我用过的
在线时间3 小时
版本5.9.24
积分 70, 距离下一级还需 130 积分
积分 70, 距离下一级还需 130 积分
机型红米Note2 移动/标准
MIUI版本5.9.24
沙發正解:)
很多安全软件需要6位解锁密码,4位不够用的
而且以前版本的MIUI是支持6位数字密码的
MIUI五周年
MIUI五周年纪念勋章
MIUI 7纪念勋章
小米5发布会
参加小米5发布会直播页大转盘抽奖获得
Copyright (C) 2016 MIUI
京ICP备号 | 京公网安备34号 | 京ICP证110507号

我要回帖

更多关于 漂亮九宫格解锁图案 的文章

 

随机推荐