一道有意思的手机九宫格手势密码的算法题,大家看看有好的思路吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yasonyyx
V2EX    程序员

一道有意思的手机九宫格手势密码的算法题,大家看看有好的思路吗

  •  1
     
  •   yasonyyx 2014-12-31 11:39:45 +08:00 6343 次点击
    这是一个创建于 3942 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天看到一道九宫格,就是手机手势密码的题,题目大概是这样的:
    1、如果只设置2位密码,有多少种满足的密码,密码不能穿越,比如1 3之间穿过2,这是不允许的;2、如果变成N*M格,判断一个2位密码是否是满足要求的密码(要求同1),
    3、如果设置密码位数为9位,有多少种合适的密码,给出算法思路,并给出伪代码。

    我的想法是这样的:
    先检测当前位置在哪,再穷举所有移动记录次数。
    1、3*4+5*4+1*8=40.
    2、可以用一个N*M的数组保存1~N*M的值,然后看两位密码是否接触...
    3、实在没想到什么让自己觉得很好的思路...

    各位大神看看除了我这个思路外还有什么更高效的方法吗?

    6 条回复    2015-01-01 12:08:43 +08:00
    sam12321
        1
    sam12321  
       2014-12-31 11:46:08 +08:00
    已经按过的点貌似不能再按了
    gooffer
        2
    gooffer  
       2014-12-31 11:53:16 +08:00
    穷举吧,这个没方法的吧?
    deljuven
        3
    deljuven  
       2014-12-31 17:07:11 +08:00 via Android
    类似n皇后问题,回溯吧。。。还没有想到更好的思路。。。
    xylophone21
        4
    xylophone21  
       2014-12-31 18:21:28 +08:00
    歪个楼吧,为什么要计算密码是否满足要求?为什么要计算有多少种情况?

    密码保存模块校验? 这不是把密码保存和输入耦合吗?
    密码输入模块校验?人都能输进去了你担心这个干啥?怕UI bug?万一UI Bug了用更高级的密码重置一下不就OK了?不会没有吧?
    计算密码的安全性? 那就不需要在板子上计算了,找台服务器慢慢算就是,一次性的工作,为什么要高效?
    pheyer
        5
    pheyer  
       2015-01-01 12:05:17 +08:00
    第1题,九宫格从左上角顶点开始,从左到右从上到下分别命令为A, B, ..., I, J。统计规则:每个点只统计右方,右下方,下方,左下方的连接点。则A点的连接点个数为3个,B点的连接点为4个,C点的连接点为2个,D、E、F与A、B、C一致,H和I分别为一个。
    这样就能找到规律了吧:(n-1)*(3+(m-2)*4+2) + m-1

    第2题,如果是4宫格,合适的密码为3^9吗?感觉有点难度
    pheyer
        6
    pheyer  
       2015-01-01 12:08:43 +08:00
    点过的好像不能再点吧,那就不是3^9了。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6329 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 02:10 PVG 10:10 LAX 19:10 JFK 22:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86