破解“读心术”网页

来源:互联网 发布:转换音频格式的软件 编辑:程序博客网 时间:2024/04/29 02:13

 

无意之中看到这样一种网页“读心术:这个程序有着能够看穿你心思的特殊能力,试试吧”,如http://www.souxin.com/dxs.htm 或 http://www.91cool.net/heart.html。

试过之后大感惊奇,该网页怎么竟有如此魔力?但我毕竟是个无神论者,而且用的又是Chrome浏览器,查看网页的源代码很方便,于是便查看网页源代码。找了半天,发现了相关的代码如下:
 
看了又看也没发现这段代码有何神奇之处,无非就是打印输出表格,用到了随机数改变输出的图像顺序而已。
我忽然注意到了“ i < 89”这一条件,认定此处必有玄机。我于是算了一算,发现90~99所有的数按照“读心术”的要求运算之后都是81,而80~89运算之后都是72,70~79是63,以此类推分别是54、45、36、27、18和0.只要保证0、18、27、36、45、54、63、72、81这几个数所对应的图像是相同的就可以了。查看“读心术”网页打印出来的图像,果然如此。
继续看代码,发现了“i%9 == 0”这一判断条件,再一观察,发现上面那几个关键的数(0、18、27、36、45、54、63、72、81)确实是9的倍数。代码中当遇到小于89的9的倍数时,强制令a=ax,这样一来便保证了9的倍数对应的图像是相同的。于是,对于任何符合两位数,减去自己的个位和十位后,所对应的图像都是相同的。这就是所谓“读心术”程序的trick。

 

原创粉丝点击