902
需用时 01:48
智能手机的密码总共有多少种

智能手机掉了是一件很烦人的事,因为里面经常有一些秘密的文件,让不少朋友提心吊胆,只能寄希望于密码不让人破解了。前几天,死理性派编辑收到了一位读者的提问:在 iPhone 和 Android 系统中各有多少种可能的密码?这似乎是“生活中的数学”的一个绝佳案例,于是死理性派编辑打算立即动手开始计算。

 

iPhone 有10000种密码

iPhone 的密码是一个四位数,从 0000 到 9999 都有可能成为 iPhone 的密码,总的可能性有 10000 种。Android 系统则独具一格,它的“密码”是 3 × 3 的点阵中的一条路径,这条路径最少连接四个点,最多连接九个点。因而,符合要求的路径数最多可以达到 A(9, 4) + A(9, 5) + A(9, 6) + A(9, 7) + A(9, 8) + A(9, 9) = 985 824 种,看上去远远超过了 iPhone 的密码数。不过,这只是 Android 密码数的一个上限。Android 设置密码时有不少限制,这给死理性派的分析带来了巨大的障碍。仔细研究后,死理性派编辑发现——这恐怕是实际生活中最复杂的数学题之一了。

Android 有389 112 种密码

Android 的密码是 3 × 3 点阵中的一条路径,这条路径可以交叉,可以“走日字”,几乎是无所不能(只要不经过重复点),但却有一个例外:路径不允许跳过途中必须要经过的点。例如, 如果从左上角的点连接到右上角的点,中间的那个点会被自动地加进路径里。但麻烦就麻烦在,这个规则本身也有一个值得注意的地方:如果中间的点是之前已经用过的,那么这个点就可以被跳过去了。

/gkimage/e8/kt/3e/e8kt3e.png

我们不妨把点阵中的九个点分别用数字 1 到 9 编号。按照上述规则,4136、4192 都是不合法的,但 24136、654192 则都是可行的。死理性派这下苦恼了,似乎五花八门的组合数学模型在这里都派不上用场。怎么办呢?别急,我们还有强大的计算机帮忙。下面,有请编辑最爱的数学软件 Mathematica 登场。


首先,让我们生成所有 985 824 种没有限制的排列组合:

/gkimage/ui/mq/ym/uimqym.png

再记下不能直接连接的点对:

/gkimage/h2/va/in/h2vain.png

由此生成不合法的排列规则:

/gkimage/t7/wf/k1/t7wfk1.png

从全部排列组合中删掉不合法的,便得到了所有可能的 Android 密码了:

/gkimage/kl/hf/jv/klhfjv.png

Android 密码一共有多少种可能性呢?让我们来看看:

/gkimage/3n/kr/vx/3nkrvx.png

这样,我们就得到了一个准确的数字:在 Android 系统上一共有 389 112 种可能的密码,只占之前估计的密码数上限的 1/3 左右。


 

Android 的密码要连接 6 个点才够强

别以为 Android 的密码可能性这么多,你就能高枕无忧了。编辑身边绝大多数的 Android 用户,密码路径都只连接了四五个点。让我们来看一看,在 389 112 种可能的密码中,不同长度的密码各占多少:

/gkimage/nf/xd/9l/nfxd9l.png

可见,包含 4、5、6、7、8、9 个点的合法路径数分别为 1624、7152、26016、72912、140704、140704。如果你的密码路径连接的点数不到 6 个的话,可能的密码总数只有 1624 + 7152 = 8776 个,还不如iPhone的密码呢。

事实上,大多数用户的密码都是更简单的路径——路径不与自身相交,并且所有线段都是水平、竖直或者 45 度倾斜的。这种路径的数目就更少了。在此,死理性派编辑建议广大 Android 用户设定一些像 654192 一样的怪异路径,这样才算是一个足够强的密码。
The End

发布于2011-07-03, 本文版权属于果壳网(guokr.com),禁止转载。如有需要,请联系果壳

举报这篇文章

matrix67

数学狂

pic