| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 530 人关注过本帖
标题:有关手机锁算法
只看楼主 加入收藏
jinh
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2011-5-31
结帖率:66.67%
收藏
 问题点数:0 回复次数:1 
有关手机锁算法
图片附件: 游客没有浏览图片的权限,请 登录注册

上图为手机锁的简易图:它是三行三列,规则的,本人画的不太好
我们把它编号为:
0  1   2
3  4   5  
6  7   8
解锁原理:随便从一个开始,连接下一个,再连下一个,再下一个.就可以了(不能有重复的四个)但不能从0直接连到8,他们的直线经过了4,比如你开始时设置的锁是:0-4-8-1;解锁时必须是一样的顺序,否则进不去;比如还有一些连接:0-7-6-3,4-8-7-5,等等.但不能出现:0-2,因为他穿过1才能到.0-0不行所以我们用邻接矩阵方法构造时edge[i][i]=0表示同个数字不能相互连接,edge[0][2]=0表示0不能与2直接相连,矩阵中等于1的表示下标之间的两个图形能连接;
用邻接矩阵方法构造:         
edge[9][9]={{0,1,0,1,1,1,0,1,0},
{1,0,1,1,1,1,1,0,1},
{0,1,0,1,1,1,0,1,0},
{1,1,1,0,1,0,1,1,1},
{1,1,1,1,0,1,1,1,1},
{1,1,1,0,1,0,1,1,1},
{0,1,0,1,1,1,0,1,0},
{1,0,1,1,1,1,1,0,1},
{0,1,0,1,1,1,0,1,0}};
关于这个锁的有多少种.算出来是152
代码如下:
程序代码:
#include<iostream>
using namespace std;

void main(){
   
    int i,j,k,l,z,count;
    //char vex[9];//顶点表
    int edge[9][9]={{0,1,0,1,1,1,0,1,0},{1,0,1,1,1,1,1,0,1},{0,1,0,1,1,1,0,1,0},{1,1,1,0,1,0,1,1,1},{1,1,1,1,0,1,1,1,1},{1,1,1,0,1,0,1,1,1},{0,1,0,1,1,1,0,1,0},{1,0,1,1,1,1,1,0,1},{0,1,0,1,1,1,0,1,0}};//邻接矩阵,即边表
    int vnum=9;
    count=0;
    int visited[9];//定义~~~^^^^^^^^^^^^^^^^^^^
    for(i=0;i<vnum;i++){
       
        for(int a=0;a<vnum;a++)
        visited[a]=0;
        visited[i]=1;//标志向量初始化
        for(j=0;j<vnum;j++){
             if(visited[j]==0&&edge[i][j]==1&&(j!=i)){
                visited[j]=1;
                for(k=0;k<vnum;k++){
                      if(visited[k]==0&&edge[j][k]==1&&k!=j&&k!=i){
                          visited[k]=1;
                          for(l=0;l<vnum;l++){
                             if(visited[l]==0&&edge[l][k]==1&&(l!=k)&&(l!=i)&&(l!=j))
                               count=count+1;
                        }
                    }
                }
             }
        }
    }
       
cout<<"此算法有"<<count<<""<<endl;
   
}    

搜索更多相关主题的帖子: 手机锁 解锁 
2011-11-13 00:24
jinh
Rank: 1
等 级:新手上路
帖 子:18
专家分:4
注 册:2011-5-31
收藏
得分:0 
期待有改进方法,
2011-11-18 22:17
快速回复:有关手机锁算法
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023980 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved