不知道各位大牛有沒有玩過雷神之錘的遊戲?據說這是九十年代一個非常經典的遊戲。雷神之錘的遊戲,內容以及畫面都相當不錯,而且在很低配置的計算機中,玩遊戲也相當流暢。雷神之錘3的作者是約翰卡馬克,早前,雷神之錘三的源碼公開。卡馬克大神有一段代碼,簡直是吊炸天。
這段代碼,據說主要用處是把一個數開平方並且取倒。經過測試之後,據說上面這段代碼,盡然比(float)(1.0/sqrt(x))更快,而且是快4倍。
具體的實現過程比較複雜,下面是實現過程。
關於這段代碼,網友又是怎麼回復的:
網友一:這段代碼魔法所在的地方,那就是0x5f3759df。
網友二:很簡單的說,這個算法,是求得足夠精確近似值比較高效的一種。那個常數相當不科學,據說至今為止,還沒有人明白那個常數究竟是怎麼得到的。
網友三:和系統函數相比較,這段代碼的運算效率更快。
網友四:有沒有具體的實現過程。
網友五:簡直是吊炸天了。
據說後來,為了研究這段代碼,普渡大學一位數學家開始了長期的研究過程。最後終於計算出了結果,他還把計算出的那個起始值同卡馬克競賽,但是他輸了。從這邊可以看出,卡馬克確實很牛逼。關於上面這段代碼,你覺得怎麼樣?
以上內容來源於開源中國