破解“读心术”网页

 

无意之中看到这样一种网页“读心术:这个程序有着能够看穿你心思的特殊能力,试试吧”,如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。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值