C++简易理论模型:DFS深搜法破解安卓手机锁
来源:互联网 发布:未识别的网络怎么删除 编辑:程序博客网 时间:2024/05/02 02:25
今天吃完晚饭突然想到手机锁如何破开,以前一直认为它只有9个点,总感觉它不见得怎么中用,只不过在普通人眼里看来很强大而已,今天一试,果然破解了~~~~HiaHia!!
过会去上自习,下面简略说下模型:
1 2 3
4 5 6
7 8 9
有三种点,角上的点(1、3、7、9),边中的点(2、4、6、8),中心点(5)。
把它们相互之间连接的关系矩阵如下给出
bool Graph[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}};
直接用DFS深搜破解,探测函数如下
bool Detect(int point){if(TestRoute == ActualRoute)return true;if(TestRoute.size() == ActualRoute.size())return false;for(int i=1; i<=9; ++i){if ((true == Graph[point-1][i-1]) && //Able to connnect(TestRoute.end() == find(TestRoute.begin(), TestRoute.end(), i)) //Not included in Test Route){TestRoute.push_back(i);if(Detect(i))return true;TestRoute.pop_back();}}return false;}
最后直接做个简单的测试即可#include "stdafx.h"#include <iostream>#include <vector>#include <iterator>using namespace std;vector<int> TestRoute, ActualRoute ;bool Graph[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}};bool Detect(int point){if(TestRoute == ActualRoute)return true;if(TestRoute.size() == ActualRoute.size())return false;for(int i=1; i<=9; ++i){if ((true == Graph[point-1][i-1]) && //Able to connnect(TestRoute.end() == find(TestRoute.begin(), TestRoute.end(), i)) //Not included in Test Route){TestRoute.push_back(i);if(Detect(i))return true;TestRoute.pop_back();}}return false;}int main(){int tmp;while(cin>>tmp)ActualRoute.push_back(tmp);for(int start=1; start<=9; ++start){TestRoute.push_back(start);if(Detect(start)){cout<<"破解成功!"<<endl;copy(TestRoute.begin(),TestRoute.end(),ostream_iterator<int>(cout," ")); TestRoute.pop_back();break;}else TestRoute.pop_back();}ActualRoute.clear();system("pause");return 0;}
最后的结果:5 4 7 8 9 6 3 2 1^Z
破解成功!
5 4 7 8 9 6 3 2 1 请按任意键继续. . .
- C++简易理论模型:DFS深搜法破解安卓手机锁
- 【Wifi密码破解】安卓手机、电脑如何破解Wifi密码
- 安卓简易闪光灯
- 安卓简易计算器
- 安卓简易理财
- 解除安卓手机锁
- 破解安卓图案锁屏密码
- [安卓破解]触摸精灵(原手机按器)3.3.0, 破解版,无时间限制,无到期时间
- 【Android】安卓手机下xx.apk JAVA破解之旅
- 上一封邮件下一封邮件返回邮件 新技能Get!如何破解安卓手机图案解锁
- 安卓手机密码破解大全,保准有你没见过的方法
- 安卓 socket简易聊天室
- 安卓简易笔记app
- 安卓手机安装gcc,编译c/c++
- Type C转console安卓手机配置线
- [安卓破解]3G千里眼破解版
- 安卓手机包官网
- 安卓手机
- Map.Entry<K,V> 的简单用法
- 3行代码为何能求得二进制数中1比特的个数
- android编译系统makefile(Android.mk)写法
- Day2完挂,回家种田
- 工作记录--我在路上
- C++简易理论模型:DFS深搜法破解安卓手机锁
- HTML5设计原理
- 河软CSDN乐知学院 学员第十周学习总结
- 在login.aspx中使用设计登陆界面 并 写usp_Login存储过程
- 十大最热门的云职业
- CSDN乐知学院学员第十周学习总结
- define
- linux内核学习初笔记(3)u-boot执行第二阶段typedef int (init_fnc_t) (void)解释
- Using crosstool-ng to generate cross-compiler for ARM