徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
安装
比浏览器更快的访问!
 

平方根倒数速算法和魔術數字 (程式設計)

快捷方式: 差异相似杰卡德相似系数参考

平方根倒数速算法和魔術數字 (程式設計)之间的区别

平方根倒数速算法 vs. 魔術數字 (程式設計)

平方根倒数速算法(Fast Inverse Square Root,亦常以“Fast InvSqrt()”或其使用的十六进制常数0x5f3759df代称)是用于快速计算\scriptstyle x^(即\scriptstyle x的平方根的倒数,在此\scriptstyle x需取符合IEEE 754标准格式的32位浮点数)的一种算法。此算法最早可能是于90年代前期由SGI所发明,后来则于1999年在《雷神之锤III竞技场》的源代码中应用,但直到2002-2003年间才在Usenet一类的公共论坛上出现。这一算法的优势在于减少了求平方根倒数时浮点运算操作带来的巨大的运算耗费,而在计算机图形学领域,若要求取照明和投影的波动角度与反射效果,就常需计算平方根倒数。 此算法首先接收一个32位带符浮点数,然后将之作为一个32位整数看待,以将其向右进行一次逻辑移位的方式将之取半,并用十六进制“--”0x5f3759df减之,如此即可得对输入的浮点数的平方根倒数的首次近似值;而后重新将其作为浮点数,以牛顿法反复迭代,以求出更精确的近似值,直至求出符合精确度要求的近似值。在计算浮点数的平方根倒数的同一精度的近似值时,此算法比直接使用浮点数除法要快四倍。 此算法最早被认为是由约翰·卡马克所发明,但后来的调查显示,该算法在这之前就于计算机图形学的硬件与软件领域有所应用,如SGI和3dfx就曾在产品中应用此算法。而就现在所知,此算法最早由加里·塔罗利(Gary Tarolli)在的开发中使用。虽说随后的相关研究也提出了一些可能的来源,但至今为止仍未能确切知晓算法中所使用的特殊常数的起源。. 程式設計中所謂的魔術數字(magic number)是指寫死在程式碼裡的具體數值(如「10」「123」等以數字直接寫出的值)。雖然程式作者寫的時候自己能了解數值的意義,但對其他程式員而言,甚至製作者本人經過一段時間後,會難以了解這個數值的用途,只能苦笑諷刺「這個數值的意義雖然不懂,不過至少程式能夠執行,真是個魔術般的數字」而得名(起源参考平方根倒数速算法)。 因為下述理由,一般認為程式碼中不應該含有魔術數字。.

之间平方根倒数速算法和魔術數字 (程式設計)相似

平方根倒数速算法和魔術數字 (程式設計)有1共同点(的联盟百科): 常数

常数

常数又稱定數,是指一个数值固定不变的常量,例如圆周率\pi\,、自然对数的底e,与之相反的是變數。 在物理學上,很多經測量得出的數值都被稱為常數。例如萬有引力常數和地表重力加速度等。但有研究表明,部分這類常数并不是恒定不变的,因此就被稱作“不定常数”(inconstant constant)和“不恒定的常数”(not-so-constant constant)。.

常数和平方根倒数速算法 · 常数和魔術數字 (程式設計) · 查看更多 »

上面的列表回答下列问题

平方根倒数速算法和魔術數字 (程式設計)之间的比较

平方根倒数速算法有42个关系,而魔術數字 (程式設計)有11个。由于它们的共同之处1,杰卡德指数为1.89% = 1 / (42 + 11)。

参考

本文介绍平方根倒数速算法和魔術數字 (程式設計)之间的关系。要访问该信息提取每篇文章,请访问:

嘿!我们在Facebook上吧! »