首頁(yè) 科幻

高人竟在我身邊

第一百章 101號(hào)選手提前交卷?

高人竟在我身邊 晨星LL 2688 2020-10-29 09:45:00

  相比起詹永樞院士的驚訝,郝云在考慮這個(gè)問(wèn)題的時(shí)候倒是沒(méi)有想的特別復(fù)雜,純粹是撓頭的時(shí)候靈機(jī)一動(dòng)想出來(lái)的這個(gè)方法。

  程序首先猜測(cè)了一個(gè)接近1/sqrt(number)的值,然后運(yùn)用牛頓迭代公式進(jìn)行了迭代運(yùn)算。

  單從算法邏輯上來(lái)講,其實(shí)他改寫之后的代碼,和之前那個(gè)Q_Sqrt函數(shù)的代碼并沒(méi)有太大的區(qū)別。冰川引擎在math.c文件中定義的Q_Sqrt函數(shù),事實(shí)上也是采用的這個(gè)思路。

  而要說(shuō)唯一哪里不同,大概就是在那個(gè)神秘的數(shù)字——0x5f375a86上了。

  根據(jù)牛頓迭代算法的原理,猜測(cè)值距離最終結(jié)果越接近,迭代的次數(shù)越少。而神秘的數(shù)字0x5f375a86,便是用來(lái)計(jì)算猜測(cè)值的。

  而郝云在嘗試了幾次之后意外地發(fā)現(xiàn),如果使用“0x5f375a86”這個(gè)數(shù),得到的y將非常接近1/sqrt(n),以至于最終執(zhí)行牛頓迭代算法時(shí),只需要2次代法就可以達(dá)到他所需要的精度!

  至于這個(gè)數(shù)是怎么得出來(lái)的?

  郝云也沒(méi)辦法解釋。

  畢竟他只是遵循著自己的數(shù)學(xué)直覺(jué),覺(jué)得原來(lái)那個(gè)程序中選取的數(shù)字不夠好用,然后試著換了個(gè)更好用的數(shù)字試試。

  一開始他也試了好幾次,發(fā)現(xiàn)更改的數(shù)字都沒(méi)有原先那個(gè)數(shù)好用,直到后來(lái)靈機(jī)一動(dòng)試到了這個(gè)0x5f375a86,發(fā)現(xiàn)居然只需要兩次迭代就能完成整個(gè)計(jì)算過(guò)程。

  老實(shí)說(shuō),他自己也驚訝的不行。

  可能……

  這也和他的數(shù)學(xué)屬性達(dá)到了精通有點(diǎn)關(guān)系?

  總而言之,采用了0x5f375a86這個(gè)特殊的數(shù)字之后,單從運(yùn)算步數(shù)來(lái)看,整個(gè)函數(shù)的運(yùn)算效率將比原本math.c文件中定義的Q_Sqrt函數(shù)快上足足兩倍!

  至于這個(gè)結(jié)果會(huì)產(chǎn)生怎樣的效果……

  老實(shí)說(shuō)郝云也沒(méi)有一個(gè)準(zhǔn)確的概念。

  畢竟他對(duì)這款冰川引擎的了解,遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到業(yè)內(nèi)人士的高度。

  之前他雖然做過(guò)游戲,但其實(shí)也就只做過(guò)2048這一款游戲而已。神殿逃亡算是運(yùn)用到了和冰川引擎同源的一款開發(fā)軟件,但那款游戲基本上都是李宗正一個(gè)人完成的,郝云壓根兒就沒(méi)參與到開發(fā)環(huán)節(jié)中,就算參與進(jìn)去了八成也不會(huì)研究引擎的源代碼。

  這個(gè)世界的游戲開發(fā)工具已經(jīng)進(jìn)化到足夠傻瓜的程度,除開那些大制作之外,絕大多數(shù)的中小型游戲都是能夠單純的依靠開發(fā)工具,以及二級(jí)程度的編程水平來(lái)實(shí)現(xiàn)的。

  “……話說(shuō)到底咋測(cè)試引擎效率提升了多少?這電腦上就沒(méi)有一個(gè)打分軟件,或者測(cè)試用的游戲嗎?”

  郝云在電腦上仔細(xì)搜尋了一番,然而根本沒(méi)有找到那種能夠用來(lái)給引擎打分的工具軟件,也沒(méi)找到能測(cè)試引擎性能的游戲。

  事實(shí)上,主辦方確實(shí)沒(méi)有準(zhǔn)備這種東西。

  畢竟從一開始,他們壓根兒就沒(méi)考慮過(guò)有人能真的完成這道送命題。

  “我去,這是搞毛線???”

  搜索了一番之后仍然沒(méi)有找到檢測(cè)工具,郝云哭笑不得地看著屏幕,徹底沒(méi)轍了。

  總不能當(dāng)場(chǎng)開發(fā)一款游戲來(lái)跑分吧?

  雖然也不是不行,但手邊一點(diǎn)素材都沒(méi)有,電腦更是不能聯(lián)網(wǎng),總不能從最基礎(chǔ)的素材開始做起吧?

  一番糾結(jié)之后,最終郝云還是放棄了。

  算了。

  反正自己也想不到更好的優(yōu)化方法了……

  如此想著,郝云嘆了口氣,伸手點(diǎn)了下考試程序中的提交選項(xiàng),然后便雙手離開了鍵盤。

  考試只設(shè)置了三天的最長(zhǎng)時(shí)限,并沒(méi)有設(shè)置最低交卷時(shí)間,提交了答案隨時(shí)都可以離場(chǎng)。

  因?yàn)榧幢闶翘崆敖痪硪膊粫?huì)加分,所以大多數(shù)人就算提前做完了也會(huì)選擇熬到飯點(diǎn)再交卷,和一起來(lái)參賽的朋友出去吃飯。

  郝云一開始也是這么打算的,但奈何他的隔間里啥也沒(méi)有,除了干坐著等之外根本沒(méi)事情可干,于是只能從自己的隔間里出來(lái)了。

  離開考場(chǎng)的時(shí)候,站在安檢口的還是那個(gè)保安小哥。

  郝云看了他一眼,他也盯著郝云看了一會(huì)兒。

  “上廁所?你走錯(cuò)方向了?!?p>  “沒(méi),我考完了?!?p>  “考,考完了?”

  “嗯,”郝云點(diǎn)了下頭,指了指體育館的出口,“我可以出去了嗎?”

  總算是從愣神中回過(guò)了神來(lái),保安小哥木木地點(diǎn)了下頭,解開了攔在入口處的隔離帶。

  兩年前的希望杯也是在夏東師范大學(xué)比的,當(dāng)時(shí)的他也是站在這里維持秩序。如果他沒(méi)記錯(cuò)的話,當(dāng)時(shí)最早交卷的考生,也是下午五點(diǎn)鐘的事情了。

  然而現(xiàn)在,距離九點(diǎn)鐘考試正式開始還沒(méi)一個(gè)小時(shí)……

  這特么是交了白卷嗎?

  好歹也是從幾萬(wàn)份作品中入圍的決賽強(qiáng)者,不至于交白卷吧?!

  事實(shí)上,驚訝的不只是站在考場(chǎng)入口的幾名保安小哥。

  站在考場(chǎng)后臺(tái)的主試委員會(huì)們,遠(yuǎn)遠(yuǎn)比這里的所有人都要驚訝。

  尤其是張存浩教授。

  在看完了郝云重寫的代碼之后,整個(gè)人都傻掉了。

  盯著草稿紙上密密麻麻的算式,不信邪地筆算了無(wú)數(shù)遍的張存浩教授,終于忍不住爆了一句粗口。

  “臥槽!這家伙……是怎么想到這個(gè)數(shù)字的?”

  這……

  這也太不可思了!

  僅僅只更改了一個(gè)猜測(cè)數(shù),就讓整個(gè)函數(shù)的運(yùn)算效率提升了足足兩倍?!

  站在張存浩教授的旁邊,龍威集團(tuán)軟件開發(fā)部門的馮正青經(jīng)理,悄悄拉了他一把,小聲問(wèn)道,“如果將它運(yùn)用在冰川引擎上能提升多少運(yùn)行效率?”

  “保守估計(jì)百分之二十,3D引擎中針對(duì)反平方倒數(shù)的相關(guān)運(yùn)算還是不少的……”

  “怎么會(huì)這么多?”馮經(jīng)理微微動(dòng)容。

  身為外行人的他并不懂那么多門道,也不懂什么是牛頓迭代算法,只是覺(jué)得這簡(jiǎn)直是不可思議!

  冰川引擎雖然不是龍威集團(tuán)的核心研發(fā)項(xiàng)目,但該項(xiàng)目組里的計(jì)算機(jī)大牛也絕對(duì)不少。然而這么多人都沒(méi)有發(fā)現(xiàn)這個(gè)改進(jìn)方法,卻被一個(gè)學(xué)生給發(fā)現(xiàn)了?

  換誰(shuí)也特么的沒(méi)法信??!

  滿對(duì)著寫滿的草稿紙,張存浩教授扔在苦思冥想著,雖然他已經(jīng)漸漸感覺(jué)到這個(gè)東西超出了他所熟悉的研究領(lǐng)域。

  站在他旁邊的是一名來(lái)自首都國(guó)防大學(xué)的老教授,只見(jiàn)這位老教授在沉默許久之后,也是發(fā)出了一聲由衷的感慨。

  “不可思議……沒(méi)想到居然讓這家伙在最不可能找到突破口的地方找到了突破口。我之前一直認(rèn)為math.c文件中的函數(shù)已經(jīng)足夠完美了,就像加減乘除這些工具一樣可以直接使用。沒(méi)想到居然還有如此神奇的方法,能夠讓完美的邊界再向上一步。”

  “這小子是個(gè)人才?。 ?p>  不知心里頭在想著些什么,張存浩教授沉默的表情中忽然浮起了一絲糾結(jié)。

  掙扎了許久之后,他看向了自己的老師詹永樞院士。

  “不過(guò)恕我直言,這樣的答案真的沒(méi)問(wèn)題嗎?”

  詹永樞院士看了他一眼。

  “你還不服氣嗎?”

  “倒是沒(méi)有不服氣,我只是覺(jué)得……有點(diǎn)兒憋屈,”張存浩教授憋了好久,才說(shuō)出了心里話,“這根本不是程序意義上的解法,他甚至壓根兒就沒(méi)有修改哪怕一行代碼。無(wú)論是誰(shuí)都能看得出來(lái)……這特么,根本就是數(shù)學(xué)!”

  是的,這特么根本就是數(shù)學(xué)!

  那個(gè)參賽者只不過(guò)是修改了一個(gè)隨機(jī)數(shù),結(jié)果湊巧地讓計(jì)算“反平方倒數(shù)”的底層函數(shù)少做了幾次牛頓迭代,然后就這么“積少成多”地實(shí)現(xiàn)了對(duì)引擎的優(yōu)化?

  說(shuō)到底為什么偏偏是這個(gè)數(shù)字???!

  畢竟不是數(shù)學(xué)家,張存浩想的都快崩潰了,也沒(méi)想出來(lái)。

  看著一臉抓狂的學(xué)生,詹永樞院士忽然笑了。

  “誰(shuí)說(shuō)不是呢?”

  他也沒(méi)想到這個(gè)數(shù)字到底是怎么算出來(lái)的,而且是完全一點(diǎn)頭緒都沒(méi)有的那種。

  完全依靠直覺(jué)?

  類似的情況倒也不是沒(méi)有過(guò),有些數(shù)學(xué)常數(shù)其實(shí)最開始也是依靠經(jīng)驗(yàn)猜出來(lái)的,直達(dá)十幾年年甚至是幾個(gè)世紀(jì)之后才被證明其中的數(shù)學(xué)原理。

  想到這兒,看著那個(gè)正在離開考場(chǎng)的考生,詹永樞院士不禁在心中輕聲感慨。

  可能……

  這就是天才吧。

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進(jìn)入下一章  按 “空格鍵” 向下滾動(dòng)
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁(yè)
返回書頁(yè)
指南