98.第98章 四道送命题

第98章 四道送命题

希望杯决赛开始的日子,就在郝云一行人抵达尚海的第二天。

夏东师范大学体育馆。

活动式的门板将偌大的场地,分割成了二百七十个不大不小的露顶隔间。每个隔间里放置着一台电脑,而所有的电脑都被连接在一台中央服务器上,受到统一的考场系统管理。

比赛时间限制是三天,三天内参赛者都得吃住睡在隔间里,可以随时申请前往体育馆的卫生间,但进出都要额外过一次场内的安检。

不过按照往届惯例,不少人都是在一天之内就完成了自己的作品,在这里能耗满三天时间的人其实不多。

毕竟,哪怕有卫生间可以用,三天不洗澡也不换衣服,对于爱干净的人而言也是很难忍受的。

根据大赛的规则,参赛者可以携带海报、手办之类的装饰品进入考场,在比赛开始前一小时自由装扮自己的隔间。

毕竟对于一名“设计师”而言,环境对灵感的影响也是很大的。

尤其是对于希望杯这样的开放性程序设计赛事而言,专业知识技能只是参加比赛的门槛,想要从众多设计作品中脱颖而出,更多考验的还是参赛者们的创意和脑洞!

就像大赛主办方宣传的那样,比赛不会预设任何的标准答案,你甚至可以通过黑掉考试服务器来获得比赛的胜利。

只不过,这恐怕也是最艰难的一条路。

毕竟主试委员会里不少专家都是夏科院的信息安全专家,当年人联还未统一的时候就在和全世界的高手们过招了。

能赢了他们?

兄弟,哪怕没得冠军,你都前途无量了!

考试现场的入口处,安检人员正用着专业地设备对考生们携带的行李进行检查,并对那些可能涉及到违规的物品进行排除。

和那些拎着大包小包进入考场的考生不同,郝云是两手空空啥也没带。因为听说考场提供电脑,所以他干脆就带了个人过来。

见他如此与众不同,负责安检工作的保安小哥哥忍不住多嘴了一句。

“同学,你啥都不带吗?”

“不用不用,我这儿比较喜欢简单的感觉。”郝云说的是实话,他们寝室四个人的桌子,就他的最干净,上面啥也没有。

“至少带瓶水吧?”

“喝水还得上厕所,太麻烦了。”郝云摇头婉拒。

“……”

那保安小哥哥一脸无语,最终啥也没说地放他过去了。

郝云看了一眼手中的牌子。

101号?

怎么不是188?

算了,反正都一样。

就在郝云进入考场的同时,整个体育馆的另一边,主试委员会和一众工作人员们正站在那里,望着不远处熙熙攘攘的考生们,用眼神向他们送去了祝福。

“真是期待啊!”

看着一片忙碌的考场,站在体育馆边缘处的老人脸上露出了笑容,摸着满是胡渣的下巴继续说道,“也不知道今年的希望杯,又会出现怎样有趣的作品!”

“是啊,”站在他旁边的那个中年男人,眼中也是带着期待的表情,微微笑着说道,“我昨天几乎是一整晚都没睡着,一半的原因就是因为今天的比赛!”

那老人的名字叫詹永枢,是夏国科学院的信息工程学院士,以前是做信息安全技术的,新历之后开始转向了民用信息技术的研究,和夏国不少知名互联网企业都有合作。

站在他旁边的中年男人则是他的学生,名字叫张存浩,于二十年前毕业于水木大学,后来进入了龙威集团担任研发部门,并且一干就是二十年,可以说是见证了夏国电子工业与民用互联网产业的崛起。

也就是这两年,他才渐渐从一线研发岗位上退了下来,开始将工作的重心放在了教育上,在水木大学软件工程院混了个教授的职位。

“说起来,那个被《时代青年报》点评为最具创意入围作品的参赛者是几号?”忽然想起了一件有些在意的事情,詹永枢便开口向自己的学生问道。

听到了老人的询问之后,张存浩迟疑了下,认真地回答说道。

“我没记错,应该是101号。”

这个学生他也挺关注的,毕竟当时是否让那个《墓园》入围决赛,他也是参与了主试委员会的小组讨论的。

顺便一提,他当时投的是反对票,而这也是为数不多的一张反对票。

“我这边可以看到他的屏幕吗?”看着基本已经入场完毕的考生们,詹永枢感兴趣地继续问道。

“可以是可以……您对他感兴趣?”

“挺感兴趣的。”詹永枢点头承认。

“那您可能得失望了,今年的四道题目似乎考察专业知识技能更多一点,而这恰巧都不是他擅长的类型。”张存浩教授笑着说道。

之前他看过郝云写的那段程序,那根本就不能称之为程序,只能说是借助现有编辑器完成的一部毫无技术含量的3D游戏。

这样的作品之所以能入围,说到底还是有取巧的成分,至少张存浩教授是如此认为的。

而这也是他当时投出反对票的主要原因!

“所以我才感兴趣,”詹永枢淡淡笑了笑,继续说道,“我的观点一直都是,程序是死的,但人是活的。技术是有瓶颈的,但创意是没有边界的。有时候创意未必不能弥补技术上的短板,在关键的时候产生意想不到的作用。”

张存浩教授:“但不可否认,技术是一切的前提,也是解决问题的门槛。”

“是的,”詹永枢院士点了下头,看向了不远处地赛场,“所以我很好奇,作为预赛中唯一一个以游戏作品入围决赛的参赛者。”

“在面对这种专业化的考题时,他又会交出怎样的答卷!”

……

交出怎样的答卷?

如果听到了詹永枢院士和张存浩教授的对话,郝云只怕会当场苦笑着劝这位老人家,还是别对自己抱那么大期待了。

老实说,当比赛正式开始之后,看着那四道考题出现在自己地眼前,郝云整个人都傻了。

虽然根据大赛规则,他只需要从这四道题中选一道自己会的完成。但他看了一圈下来,这四道题里面就没一个是他会写的啊?

第一题!

请针对附件中的工业流水线设计一套可运行的配套软件,要求功能包括:根据零件的品质级别进行分类处理、对残次品进行退回重新加工等。(详情见附件内容)

很有夏国风格的题目。

看历年比赛的真题全集,这样的题目出现在第一题的位置到是不奇怪,毕竟历届希望杯的第一大题都是首都工业大学出题,所以郝云在读完题之后就很果断地放弃了!

第二题!

斯尔塔姆病毒席卷非洲大陆,人联卫生组织派遣专家团队入驻,请为阻止疫情蔓延设计一套行之有效的方案。(注:从程序设计的角度解决该问题)

这题目好像有点意思?

不知道为什么郝云下意识地想到了一个叫健康码的东西,但遗憾的是更多的细节他却是一点儿也想不起来了,只是依稀记得穿越前的哪一年好像用过这玩意儿。

淦!

“咋一个二个都这么难?!”

再看到第三题的时候,郝云都快哭了。

比赛已经开始十分钟了!

虽然比赛时间非常宽裕,主办方甚至准备了睡袋供参赛者休息,并提供在线订餐服务,但仍然架不住郝云在那儿着急。

该不会只有自己到现在一行代码都没写吧?

不会吧不会吧?

第三题!

近年来随着航天技术突破,火星开发成为全球市场规模增长最快的热门行业,为了适应火星地表巨大的昼夜温差,请根据夏国航天局提供的火星地表气候采样数据,为部署在火星地表的自动化农场单元设计一款有效的温控系统。【详细内容见附件】

好家伙!

前两道题还在地球上。

这道题干脆都飞地球外面去了?!

不过直觉告诉郝云,这道题虽然读起来难,但可能实际上做起来反而会比前两题简单。

只不过遗憾的是,即便是这道题,以他的编程能力也是一点儿办法都没有,琢磨了好一阵子都束手无策,感觉光是读附件的那些天文数据就像是在看天书了。

第四题的要求倒是挺简单的,针对“冰川引擎”的代码进行优化,要求将引擎运行效率提升至少百分之十。

冰川引擎是当今3D游戏的主流开发引擎,也是目前商业化最成熟的游戏引擎之一,由龙威集团十年前开发并运营到现在。

表面上看这道题似乎是最容易的,至少坐在这里的270名参赛者可能没接触过流水线、疫情防控和航天,但一定或多或少玩过或者看别人玩过游戏。

郝云当然也是这么想的。

读完这道题之后的他顿时眼睛一亮,感觉像是抓住了救命稻草似的,将附件里的内容下载了下来,开始反复地琢磨了起来。

然而……

坐在这里的主试委员会们心里都清楚的很,这大概是四道题中最不可能完成的一道题。

是的。

其他几道题只是难而已。

但这道题是几乎不可能完成,甚至于压根儿可以当成是一道浪费时间的陷阱题来看!

一款经过市场的检验,并且持续更新了十年的商业化游戏设计引擎,很多代码几乎已经将计算机的性能压榨到极限了。

说白了,人家用了不知道多少根头发、献祭了不知道多少码农堆砌出来的算法,凭啥让你一个大学生用一天的时间,就能给人家的引擎提升百分之十的效率?

嗯?

就问你凭啥?

(本章完)

99.第99章 101号选手已经走远

第99章 101号选手已经走远

老实说,这道题还真把郝云给难住了。

看了半天题目,他愣是一行代码都没敲出来。

针对“冰川引擎”的代码进行优化?

提升引擎运行效率百分之十?

话说这款引擎的底层代码长啥样他都还没看过呢……

与此同时,比赛现场的后台。

工作人员在詹永枢院士的要求下,调出了101号选手的屏幕。

看着出现在屏幕中的第四道题目,站在詹院士旁边的张存浩教授笑着摇了摇头,语气颇为遗憾却又毫不意外地说道。

“没想到他居然选的是第四题,看来彻底没戏了。”

“哦?”詹永枢院士饶有兴趣地抬了下眉毛。

“老师您该不会忘了,我在回水木大学教书之前,就是在龙威集团软件研发部门的一线岗位工作的吧?”张存浩教授开了句玩笑说道。

“我倒是还没看题目的具体内容,这个冰川引擎也是你们部门的产品吗?”

“那倒不是,这个产品本身是一个收购过来的研发团队开发的,不过我们软件研发部门给这个产品做过优化,现在的冰川3.0,就是经过我们二次优化之后的产品。现在主流的大型3D动作游戏,尤其是第三人称这个大类里面,基本上都是用这台引擎制作的!”张存浩教授说着,脸上不禁挂起了一抹自豪。

不过,他也确实有自豪的资本。

龙威集团是夏国电子工业领域里的巨头,而其旗下庞大的软件研发团队,正是奠定这一基础的因素之一。即便电子游戏是新历之后才出现的新鲜玩意儿,但也没有任何一名软件工程师因此而轻视它。

张存浩教授的意思很明确。

和另外三道没有限定成果验收标准的题目来比,这道对性能提升有明确要求的题目是绝对不可能完成的!

因为这是无数软件工程师心血的结晶!

因为这就是无数次优化之后的产物!

因为这就是最简练的代码!

它就像是一件艺术品,没有一个字母是多余的!

别说是坐在这里的学生了,就算是站在这里的主试委员会,想用短短三天时间解决这个第四道题,也是几乎不可能做到的。

当然,时间再长一点的会还是有可能做到的。

“说实话,这种连你都觉得束手无策的题目,出现在这种面向大学生的比赛上……是不是有些不太妥当?”詹永枢院士看了张存浩教授一眼说道。

张存浩教授讪讪一笑说:“往届大赛四道题中设置一道陷阱题不是惯例吗?这也是考察选手们对自己客观情况的认真。我相信只要稍微动一动脑子就能想到,对这种商业化应用已经成熟的软件进行优化,是没什么机会的。”

詹永枢院士呵呵笑了笑,没有说话。

他大概能猜到一点,用这种题目作为陷阱题的原因。

其一自然是像张存浩教授说的那样,四道题中塞一道用来埋人的送命题是希望杯大赛的惯例。至于其二,恐怕也和龙威集团给了不少赞助费有关。

毕竟像希望杯这样受到无数大学生和专业人士关注的全国性赛事,最后一道大题无人做出,这本身就是一个不得了的噱头。

用这个噱头来做推广,比任何硬广都要具有话题性。

想到这场比赛的整套考试系统都是由龙威集团免费赞助给主办方的,詹永枢院士也没说什么,只是对屏幕中的那名选手也不报太大希望了。

毕竟哪怕他自己来,也未必能在三天的时间里将这个冰川3.0引擎提升百分之十的性能。换个角度来想,如果有这么容易就能做到的方法,冰川引擎的开发团队和负责帮引擎做优化的软件工程师们,也一定早都想到了。

选择自己擅长的课题研究,避开那些明显只会浪费时间和精力的题目,同样是一名程序设计师必备的素质。

如果做不到这点……

这场比赛,101号选手已经走远了!

……

郝云并不知道,自己只不过是读题的这么一回儿功夫,站在不远处考场后台的几位业内大佬,已经连他的结局都预见了。

真的到此为止了吗?

一开始郝云也曾这么悲观的想过。

毕竟当他把整个冰川引擎的代码快速过了一遍之后,光是看懂便花了不少力气了。

“首先得冷静……”

“然后,得搞清楚这款引擎运行的逻辑。”

让图形数据输出的速度更快,质量更高是一款好引擎的重要评判标准。想必在让这款引擎上线之前,冰川引擎的开发人员就已经绞尽脑汁地优化过它的代码了。

想在前人的努力上更进一步不是完全没有可能,但指望凭一个人的力量在短短三天时间内做到,恐怕自己的系统外挂还得加强。

如此说来……

想对引擎本身的代码进行优化是几乎不可能实现的。

自己唯一的希望,恐怕只有在引擎本身代码之外的地方。

比如,那些被频繁调用的底层函数?

不管是3D引擎还是2D的引擎,不管是国内流行的“冰川”还是国外比较流行的“荒原”,一切游戏引擎归根结底都需要对底层函数频繁的调用,越底层的函数被调用的也就越频繁。

尤其是3D图形渲染这一块!

有时候玩家碰到大场景出现卡顿,甚至角色悬空、穿墙,其实很大程度的原因就是图形算法的速度跟不上。

如果能优化底层函数……

搞不好自己还真有希望搞定这道题?

一瞬间,郝云被自己疯狂的念头给吓了一跳。

卧槽?

他仔细在心中合计了一下,这特么好像比优化冰川引擎还难啊!

毕竟冰川引擎好歹还算是新历元年之后的产物,但冰川引擎调用的那些底层函数,可是在人联时代之前就已经被开发出来了。

但……

万一能行呢?

咽了口唾沫,郝云抱着试一试的想法,找到了冰川引擎目录下code文件夹中的math.c文件,翻开了里面存储着的大量被调用函数。

将这些代码从头到尾全看一遍显然是不现实的,不过郝云也没打算干这么蠢的事儿。

他只需要找到这款引擎在运行时被调用次数最多,每一次加载游戏场景时几乎都会被调用、并且足以影响到引擎运行效率的函数,然后再去里面寻找改进的机会便可。

很快,郝云锁定了一条被命名为Q_Sqrt的函数。

这个函数表面上看着平平无奇,只不过是一个运用了牛顿迭代法的求平方根倒数的算法。

然而有意思的是,在这款引擎的运行过程中,需要求平方根倒数的情形多到了令人发指的程度。

因此换个角度来想,该函数的运算速度,已经足以影响到引擎本身的效率。

这就好像航天火箭上的一颗螺丝钉,表面上看火箭的速度并不取决于这颗螺丝钉本身,而是取决于火箭引擎的设计和关键的燃料等等,但当火箭引擎的设计和燃料技术都发展到了瓶颈,想要进一步提升火箭的效率,就只有从根本的材料上着手研究了。

郝云此时此刻正在做的,便是类似的事情。

然而……

虽然思路已经找到,但想要走通这条路却并不容易。

到这为止都没有任何值得深挖的地方,毕竟牛顿迭代法,本身已经是一种非常优秀的求平方根倒数的数学方法了。

再想创新?

数学方法上改进几乎不可能!

如果想比这更快,恐怕就只有对输入值和输出值建立一个庞大的数据库才能实现了。

然而为区区一个函数建库,似乎又显得本末倒置……

时间一分一秒过去,郝云的电脑上,还是一行代码都没有敲下。

在后台看着的詹永枢院士轻轻叹了口气,眼中浮起了一丝失望的表情。

很明显,这位101号选手,已经陷入了钻牛角尖的境地。如果不能立刻改变策略,换一道题目的话,他的进度将会被其他选手远远甩开!

至少他们见到的,已经有三名种子选手,分别将其他三道题的进度推进到四分之一了。

“虽然勇气可嘉,但这样下去是不会有结果的,”张存浩教授笑了笑说,“我刚刚看了一圈,好像就他还在研究第四道题。”

“这种题目出现在比赛中就很有问题,”詹永枢院士摇了摇头,“下次比赛可不能这么胡来了。”

张存浩教授尴尬笑了笑,轻咳了声:“下次一定。”

然而就在两人都认为,101号选手已经没有任何希望了的时候,坐在电脑桌前的郝云忽然动了。

只不过,他的操作好像有些诡异?

只见他没有着急去写什么代码,而是将math.c文件中关于Q_Sqrt函数的那一段代码直接删掉了。

“他想干什么?”

看着郝云屏幕上的操作,张存浩被这位选手谜一样的动作给惊讶到了。

他大概能猜到这位选手打算干什么,无非是想重新定义“反平方倒数”的算法,然而这个世界上有可能存在比牛顿迭代还要简便的算法吗?

话说这已经不是程序的范畴,而是数学的领域了吧?

詹永枢院长也被惊讶到了,一时间没有看明白郝云打算干什么。直到他看见一行【i=0x5f375a86-(i》1)】出现在屏幕上时,才微微收缩了瞳孔。

“我可能知道他想干什么了。”

“……?”

张存浩有一脸的懵逼,看向了自己的老师,试图寻求答案。

然而,詹永枢院士却丝毫没有解答他困惑的打算,只顾自己在那儿摸着下巴的胡渣,看着屏幕上的那段代码赞许点头。

“妙啊……”

“实在是妙!”

(本章完)

重新连接服务器...

连接失败... 将在 秒后重新尝试连接.

连接失败.
请刷新此页面.

此会话被服务器暂停.

恢复会话失败.
请重试或者刷新此页面.