不知道各位大牛有沒有玩過雷神之錘的游戲?據(jù)說這是九十年代一個(gè)非常經(jīng)典的游戲蒋腮。雷神之錘的游戲,內(nèi)容以及畫面都相當(dāng)不錯(cuò)池摧,而且在很低配置的計(jì)算機(jī)中焦除,玩游戲也相當(dāng)流暢。雷神之錘3的作者是約翰卡馬克作彤,早前膘魄,雷神之錘三的源碼公開〗呋洌卡馬克大神有一段代碼创葡,簡直是吊炸天。
這段代碼绢慢,據(jù)說主要用處是把一個(gè)數(shù)開平方并且取倒灿渴。經(jīng)過測試之后,據(jù)說上面這段代碼胰舆,盡然比(float)(1.0/sqrt(x))更快骚露,而且是快4倍。
具體的實(shí)現(xiàn)過程比較復(fù)雜思瘟,下面是實(shí)現(xiàn)過程荸百。
關(guān)于這段代碼,網(wǎng)友又是怎么回復(fù)的:
網(wǎng)友一:這段代碼魔法所在的地方滨攻,那就是0x5f3759df够话。
網(wǎng)友二:很簡單的說蓝翰,這個(gè)算法,是求得足夠精確近似值比較高效的一種女嘲。那個(gè)常數(shù)相當(dāng)不科學(xué)畜份,據(jù)說至今為止,還沒有人明白那個(gè)常數(shù)究竟是怎么得到的欣尼。
網(wǎng)友三:和系統(tǒng)函數(shù)相比較爆雹,這段代碼的運(yùn)算效率更快。
網(wǎng)友四:有沒有具體的實(shí)現(xiàn)過程愕鼓。
網(wǎng)友五:簡直是吊炸天了钙态。
據(jù)說后來,為了研究這段代碼菇晃,普渡大學(xué)一位數(shù)學(xué)家開始了長期的研究過程册倒。最后終于計(jì)算出了結(jié)果,他還把計(jì)算出的那個(gè)起始值同卡馬克競賽磺送,但是他輸了驻子。從這邊可以看出,卡馬克確實(shí)很牛逼估灿。關(guān)于上面這段代碼崇呵,你覺得怎么樣?