燃文小说 > 垃圾邮件里的金手指 >垃圾邮件里的金手指

257 揭开神子之谜

“我对神子有了这种判断,自然对他感兴趣。我决定和神子下几盘棋,以便进一步了解他。我先注册了一个新账号,向神子挑战。可惜神子没有接受,他的程序设定只接受同等级的人挑战。其实当时神子在kgs已经声名赫赫,随着9d高手们悉数落败,很少再有人向他挑战。因此其他不同等级的围棋爱好者,都尝试对局申请,希望神子能和他们下上一盘。不过爱好者们和我一样,都没有获得对局机会。”

“不得已我只能用自己的账号和他下,神子果断接受挑战。不出我所料,由于我的9d账号小有名气,挑战惹来大批观战者,足有上百人。我是个低调的人,而且我的目的是研究神子,并不在乎输赢。但如此众多的观战者,使得气氛有些变化。如同站在聚光灯下,不停地有人发私信,来给我加油。我感受到一些莫名的压力。这导致我临时改了主意,预先想好的几个测试计算机围棋的招法,也就不使出来了,而是希望先拿下这局。”

“不过很遗憾,第一盘就输了,输得还十分郁闷超时负。我很少下超快棋,这种五分钟包干的棋更是没怎么下过。在对局中,一个局部出现复杂的杀气,我下意识地用了较多的时间计算。虽然在对杀中胜出,但之后用时过于紧张,不到两百手五分钟告罄,被判负了。我输棋后,后台屏蔽的观众聊天一下子刷出来,密密麻麻有上千条。其中有些评论说,我是又一个棋力超过神子,但倒在五分钟用时上的9d。”

“看到这句话,我的头脑忽然冷静下来。不是我棋力不如神子,而是在用时规则上吃了亏。人不是机器,超快棋没受过训练,是很难下好的。我收拾起郁闷的心情,对自己说‘输赢不该是我关心的事情,我关心的是神子的来历’。其实通过这局棋,我已经有百分九十的把握,确信神子是个计算机围棋程序。”

“我那么肯定主要还不是基于神子的招法,而是整个棋局中他的反应。虽然只是面对电脑屏幕,但我还是能感觉到,那种计算机特有的,生硬、机械的程序化操作。比如我挑战时,他瞬时接受;棋局结束时,他瞬时退出;我开局前和他打招呼,他没有依网络对局惯例做出回应;当然,最重要的判断依据,是他落子的速度。我每点击下一个子,瞬间神子同时便落子了。速度之快,绝不是人类能做到的。”

“别看电脑屏幕上,围棋盘中点与点之间的距离非常短,但再短的距离总还需要移动鼠标的时间。可这种时间上需求,我无法从屏幕上见到。我总是看到我俩的棋子同时出现在屏幕上。”

“当然,这不是事实。后来通过监测发现,神子的落子确实比我稍后。只不过这个时间上的间隔,已经超出了我的眼睛能捕捉的速度。倒是我的耳朵,在辨别时间上的先后快慢方面,比我的眼睛强。kgs的客户端程序有模拟落子的声效,就是说对局双方落子,都会从喇叭里发出落子声。虽然屏幕显示为同时落子,但发出的声效略有不同。两个声音无法同步,而是呈现出声音的叠加效应,能听到类似于回声的效果。”

“所以我说能有百分之九十的把握,确认这是一个电脑程序,只有程序才可能做到那么快。但我终究还是不能百分百的肯定,眼前的证据不够充足。说不定这世界上就是有这么一个天才,能在我思考的时间里,判断出我会在哪落子,然后把鼠标提前移动到应对的地方,不停按右键。这样才会我一落子,他的鼠标同时响应落子了。”

“但是真的有这种天才吗?也许有,可绝对不会是神子。知道为什么吗?我忽视了一条重要的线索。整个对局过程中,有个很不正常的情况,非常明显却又容易忽视。直到对局结束后一小时,我突然想到了。我居然忘了考虑网络延迟的效应。”

“虽然理论上网络通讯通过光缆,是以光速在传播,但实际上通讯会受到各种干扰。这和开车会遇上堵车一样,行程越长,期间遇到的,导致交通堵塞的未知因素就越多。而这些未知因素,司机是没有办法去回避或预知的。我和神子的对局,整个过程同样面临着,因长距离通讯带来的类似交通堵塞的问题。这本身意味着通讯过程需要时间。”

“这个时间怎么计算?我在客户端下一步棋,落子的数据会被打包成一个数据包,然后先要发送到kgs的服务器,再由服务器转送到神子的客户端。数据包解包还原,客户端才会知道我的那步棋下在哪了。反之,神子回应一步棋,也是发生同样的事情。只不过等在客户端那头的,变成了我。”

“那时我在国内,kgs的服务器在美国,而神子可能在地球上的任意一个地方。这就是说速度再快,也不能回避物理上的空间距离。跨区域的超长距离通讯,即便是全程使用光缆,都无法避免因为网络传输而产生的延迟。可是在和神子的对局中,这个问题完全没有出现。通讯过于完美了,完美到令我不得不怀疑。”

“如果只考虑中国到美国之间的距离,保守估计,一个来回也要30000公里。这还不包括kgs服务器与神子客户端之间的距离。这个距离用光速跑,需要0.1秒的时间。因此,理论上从我下一步棋,到神子回应一步棋,至少需要0.1秒。0.1秒很短,但对于人眼来说,已经足够去捕捉这个间隔了。而现实中,网络传输有太多不确定性,诸如网络堵塞、边际转移、信号丢失等等,都会增加传输本身的时间成本。0.1秒的理想值,根本无法达到。”

“有了这个结论,我越发好奇,神子是如何做到与我同步落子的。于是我花了一天时间,编写了一些监测程序,以此来监测和记录本地计算机的网络流量。我只开放一个端口给kgs的客户端,保证没有其他流量的干扰,然后再次向神子发出挑战。不过这盘棋我已经放弃胜负了,我的目的是要找出神子背后的秘密。”

“考虑到神子很可能是利用对手的思考时间进行计算,所以我特意在第二盘棋中,减少自己的思考时间,总是以最快的速度下棋。而且为了减少鼠标移动带来的时间花费,我直接把棋下在中腹,一个挨一个。这导致开头五手棋下成五子棋,那条长棍惹来看对局的观战者一片乱骂。”

“神子的乱空流把我的长棍围在中央,隐约摆出吃棋的架势。第十一手,我不假思索地碰在一颗离长棍最近的白子上,从而引发激战。所谓激战其实不需要动脑筋,我只是用棋感顺着战斗走。这样花费时间最少,战斗也总是局限在局部,也就节约了鼠标移动的时间。一场非常纠葛的绞杀,胜负早早在第一个局部决出我被屠龙。”

“但这盘棋我想尽可能的拖延时间,所以坚持不认输把棋局下长。最终你来我往,我俩一直下了三百多手。我输出去百来目,被吃掉两块大棋,死子无数。这要是和人在对下,十有八九会给对手和观战者骂死,棋品显得过于差劲。不过神子兢兢业业陪我下到最后,经程序计算目数,判定胜负后,才毫无怨言地一走了之。这似乎也可以作为一个旁证,他只是一个程序,因为他没有人类的情绪。”

“我如愿以偿地得到了流量数据,并很快就发现了问题所在。我和神子对局时,定时产生固定流量,但这个流量不大,一进一出大致相当。流量花费时间也较为匹配,可以判断为我们俩当时的对局信息。然而在对局结束时,出现了数据井喷。大量的数据在短时间内涌入了我的本地计算机。我马上用其他账号登录kgs服务器,随便进行了一次对局,并记录了流量数据。果然,这次对局后,没有出现数据井喷。也就是说,这个最后的网络流量和神子有关联。”

“可是,虽然发现了问题,但我没法知道,那些进入了我的计算机的井喷数据中,到底包含了什么内容。除非我能直接解读这些数据。”

“可解读数据,是件麻烦的事情。我必须截留kgs服务器发送过来的数据包。这就意味着,我要黑客他们的客户端程序才行。kgs作为一个免费服务器,为围棋爱好者提供了一个交流平台,我很佩服。所以我这样讲道德的人,不会做那种不道德的违法事。”

(不知为什么,作为听众,我对萧申贤这个“讲道德”的论述只想翻白眼。他似乎把自己曾在万世证券的肆意妄为,忘了个干净。)

“因此黑客他们的客户端,是我最后的选择。在那之前,我想尽可能寻找其它有效方法。很幸运,我在为第二盘棋复盘时,留意到一个件事那些观战者的聊天评论。”(未完待续。如果您喜欢这部作品,欢迎您来起点()投推荐票、月票,您的支持,就是我最大的动力。)

相关推荐:魔动机甲邪神竟是我自己!慕容复的人生模拟器德云:从斗笑社开始南宋海上风云天道数据库这个明星出道就想退休剑众生快穿:我在童话故事里疯狂崩坏剧情这个玩家过于强大