第44章
  [Freddie]:如果你不介意暴露位置信息,那没有问题。
  简单一句话的回复,和易思北的说法类似。
  [小萌]:也就是说,你认为还是有点问题?
  [Freddie]:位置信息暴露,可能会被人利用。
  [小萌]:是吗?
  [Freddie]:发几张你的照片给我。
  肖萌的单人照比较少,但和姐姐的合影很多。肖萌在相册里翻了翻,随手着了几张去年高考后姐妹俩外出旅游时的合影给路之航。五分钟后,路之航指出了每张照片的拍摄地点,地点详细到街道名称。姐妹俩一脸震惊面面相觑。
  [小萌]:师兄,都正确!你怎么做到的?
  [Freddie]:办法很多。比如用街景对比,用社会工程学原理分析。
  [小萌]:可有些照片根本没有街景吧,比如第二张,我们站在一块大草坪上,周围完全没有标志性建筑,你怎知道的?
  这张照片是高考成绩出来后,姐妹俩回到母校拿成绩单,在学校的绿茵场拍摄的照片。
  [Freddie]:是日晷原理。
  [小萌]:日晷原理?
  [Freddie]:太阳照在你们身上,在草坪上留下了两道阴影。根据地球和太阳的运动位置关系,在不同时刻、不同地点,地球上各个地方的日晷影长不一样。我根据你们两人和阴影的位置、角度关系,再根据照片的拍摄时间,算出了你们所在地的经纬度,精确度到分。有一定误差,误差范围大约四平方千米;再根据估算的草坪面积,和卫星照片进行对比,就找到了照片拍摄所在地。
  [小萌]:我明白了……也学习到了!
  [Freddie]:上传到网络的任何信息都会留下痕迹,就像人的指纹一样。
  [小萌]:嗯……师兄,谢谢你的指点。我会劝姐姐减少发微博的频率的。
  [Freddie]:好。
  结束了和路之航的通话,肖萌对肖薇摊了摊手。
  肖薇旁观完了两人的聊天,在一旁叹息:“无所不能的程序员啊!总算见识到顶尖学神的厉害了,在大神面前,真是毫无隐私。”
  肖萌若有所思,直到手机自动黑屏,她才如梦初醒,精神抖擞地盘坐在床上,郑重其事地打开微博网页。
  “你这是在干嘛?”肖薇人生中罕有猜不到妹妹举动原因的时刻。
  “我试着找一找师兄的微博马甲是哪一个。”
  “我的粉丝有好几万呢,你怎么找?”
  “我大概有点线索……”
  肖萌说着,在输入框输入了“Freddie”这个单词,找到了三个相关id,第一个id是汉字+Freddie的格式,相关信息显示“关注145、粉丝304、微博2617”;肖萌点开一看,就通过此W微博转发的娱乐新闻排除了这个ID和路之航的关系;另外两个ID是Freddie73和Freddie220284,其关注、粉丝,微博数量都很少。
  “应该就是这个了Freddie220284了。”
  “嗯?”肖薇把头搁在妹妹的肩膀上,从她身后看着电脑屏幕。
  肖萌点开了“Freddie220284”,关注1,粉丝24,微博也只有一条,就是注册时发的那条。
  “这个ID十分可疑,像机器ID。”
  “一定是师兄。”肖萌看着这个ID,心中百感交集。她确定,如果路之航在她面前,她恐怕控制不住又想给他一个拥抱。
  肖萌如此言之凿凿,肖薇也相信妹妹的判断。
  “只关注了我一个人,他注册这个微博仅仅关注了我一个人,应该是因为你。”
  “嗯……”
  “你这位师兄怎么会取这么个名字?”
  “Freddie是他的挪威名,220和284是一对亲和数。”
  肖薇的数学显然没肖萌好,她问:“什么是亲和数?”
  肖萌道:“数学家用亲和数来比喻两个朋友之间的感情。220和284是人类最早发现,又是最小的一对亲和数。”
  人和人之间之间讲友谊,数之间也有“相亲相爱”,根据数学定义,如果两个数甲和乙,甲的所有除本身以外的因数之和等于乙,乙的所有除本身以外的因数之和等于甲,则这两个数字是一对亲和数。毕达哥拉斯曾经说过一句名言,朋友是你的灵魂的倩影,要像220和284一样亲密。
  肖薇的敏锐度不低于肖萌,她听完亲和数的故事微微一怔:“那么,他用这个ID,是自己希望有朋友吗?”
  “……嗯,应该这样。阿斯伯格也有社交需求,他可能是交不到什么朋友,但不等于不希望交朋友。想要朋友而不得,他应该会觉得很孤独。”
  肖萌点开了Freddie220284微博的基本信息栏,看看注册时间——时间位于两个月前,正是她在书店偶遇路之航的那天,他买了那本《双胞胎的学霸之路》,还带她参观了实验室。肖萌仔细回忆他们在书店时的那番交谈。当时她清晰地感觉到路之航对身为双胞胎的自己的好奇和羡慕,感受到他可能孤独的度过了一个童年。
  肖萌盯着220284这个ID,沉默了很久,根本说不出任何话来——自己的这位大神师兄,到底是怀着怎样的感慨注册了这样的微博ID呢?
  肖薇注意到妹妹的情绪不太对,就连伸手拿过她手中的鼠标她都没什么反应,于是她拍了拍妹妹:“对了,我有个灵感,你能不能帮我实现?”
  “什么?”肖萌这才反应过来,她连忙驱散开自己心中的怅然。
  肖薇拿过她手里的鼠标,点开自己的主页,示意她看粉丝数量。
  “你看看,前几天我的粉丝数量突破了5万,我想知道我的5万粉丝各由什么人群组成,你能写个程序帮我把这些粉丝的基本信息都整理出来?了解这些粉丝的性别、年龄、地区等等,方便我以后发微博时能有的放矢?”
  肖萌的编程水平类似赵括,完全的纸上谈兵,信息竞赛和ACM的训练比较偏于算法,应用性非常差,就好比理论数学和应用数学的差距那大。她在此之前没写过任何具有实用性的软件,更别提网页信息抓取软件——不过,人生总需要一些挑战,她觉得这个挑战应该在自己能力范围内,当即点头。
  “好的。我明天试试看。”
  肖薇用脑门撞了下她的,然后伸手关灯。
  “那咱们睡觉吧。”
  从第二天开始,肖萌就按照肖薇的要求开始写一个网页信息抓取代码。
  第一天,她下载了几本书,把浏览器开到调试模式,开始研究网络协议和前端语言,分析微博的结构和条件;第二天,她再根据已有的结果一边查资料一边用C++写代码——因为信息竞赛和ACM的要求,她对C++掌握得比较好。
  所谓知易行难,随后,肖萌发现这件事的难度比自己想得大得多,她在电脑前奋斗了一整天,才写了不到一百行代码,而且还老出错。
  肖薇看到妹妹忙到晚上十点,也是好气又好笑:“不用那么拼啦,写不出来也没事,我又不着急。”
  “不,我要写出来。相信我,没问题。”
  “那好吧,你加油。”
  有追求是好事,没这点精神也没办法在华大计算机系混下去,以后写代码的苦日子还多呢——肖薇拍了拍妹妹的头顶,爬到床上开开心心的和易思北聊天去了。
  到了第三天,肖萌的进展依然不太大,卡在某个筛选条件上,怎么写代码都不对——不得已,她给路之航发了一条信息,再次泪流满面的求助。
  大神就是大神,只针对肖萌的一个求助问题,就看出了肖萌的真正需求。
  [Freddie]:如果你要收集信息,应该有现成的一些爬虫软件软件。
  [小萌]:那些软件都不好用,有些还要收费……我也想通过写这种程序来提高应用水平。
  [Freddie]:那用python写代码比较快。
  Python这个大名鼎鼎的软件肖萌当然听过,但仅仅是听过。
  [小萌]:是吗?但我还不会……
  [Freddie]:你会什么?
  [小萌]:C,C++,java。
  [Freddie]:你电脑上的C++是哪个版本?
  肖萌迅速回复,片刻后,肖萌收到路之航发来的两个CPP文件。
  [Freddie]:我之前写过一些信息抓取软件,这两个应该对你有参考价值,你可以看看。
  [小萌]:谢谢!
  肖萌感激涕零。不过,“谢谢”两个字打完,她才猛然发现,自己和路之航的聊天记录里,大都是各种各样的“谢谢”——自己和大神的技术距离怎么就那么远呢!
  [Freddie]:有不懂的问我。
  肖萌打开这两个CPP文件,其中一个针对性很强,部分代码可以直接复制过来;至于另一个CPP文件,肖萌被里面的数万行代码震惊了。她粗略地看了看,却发现有点不对,这些代码的信息抓取能力有些强到离谱,有点像黑客的手段。
  [小萌]:师兄,你是针对什么网站写的这些代码?
  [Freddie]:针对一个数据网站写的。
  肖萌的疑惑稍稍被解开了一点,虽然内心还不能完全放心,但没有再问。