作者:广东在线游戏网日期:
返回目录:游戏解答
能把问题说得更清楚些吗?
3点解锁:有52种
纵向方向,就是说1 2 3列各列选一个点,这样的点刚好可以连成一条线来(是连续的),这样就有3*3*3=27种方法.横向,也是27种
横向和纵向相加包括了所有的解法,还多了两条重复的对角线,需要减掉2.
实际上,现源在android手机九宫格解锁只要四点以上,各点可以任意连接,那么,计算起来就更简单了,4个点zhidao有4!种可能,五个点有5!种,....九个点9!种。
比起6位数字的密码解锁方zhidao式,九宫格的解锁方式是手机上,最简单的一种解锁方式,它一共可以绘制389112种图案,而且每一种图案都是不可交叉的,根据美国人在大街上统计发现,在美版使用九宫格解锁的用户中,有权60%的用户喜欢用,数字或者字母来做解锁密码,其中Z、L、C等几个常见字母,相同几率高达80%,
389112种
手算比较难,写个C++的程序算一下吧。e79fa5e98193e59b9ee7ad94330
#include<iostream>
using namespace std;
long c=0,p=0;
int a[9];
void s(int k)
{
if(a[k]==0)
{
a[k]=1;
p++;
if(p>3)c++;
if(k==0){s(1);if(a[1]==1)s(2);s(3);s(4);s(5);if(a[3]==1)s(6);s(7);if(a[4]==1)s(8);}
if(k==1){s(0);s(2);s(3);s(4);s(5);s(6);if(a[4]==1)s(7);s(8);}
if(k==2){if(a[1]==1)s(0);s(1);s(3);s(4);s(5);if(a[4]==1)s(6);s(7);if(a[5]==1)s(8);}
if(k==3){s(0);s(1);s(2);s(4);if(a[4]==1)s(5);s(6);s(7);s(8);}
if(k==4){s(0);s(1);s(2);s(3);s(5);s(6);s(7);s(8);}
if(k==5){s(0);s(1);s(2);if(a[4]==1)s(3);s(4);s(6);s(7);s(8);}
if(k==6){if(a[3]==1)s(0);s(1);if(a[4]==1)s(2);s(3);s(4);s(5);s(7);if(a[7]==1)s(8);}
if(k==7){s(0);if(a[4]==1)s(1);s(2);s(3);s(4);s(5);s(6);s(8);}
if(k==8){if(a[4]==1)s(0);s(1);if(a[5]==1)s(2);s(3);s(4);s(5);if(a[7]==1)s(6); s(7);}
a[k]=0;
p--;
}
}
int main()
{
int i;
for(i=0;i<9;i++)a[i]=0;
for(i=0;i<9;i++)s(i);
cout<<c<<endl;
return 0;
}