[转贴]John Carmack密码:0x5f3759df

转载 2006年06月10日 14:05:00

有人在Quake III的源代码里面发现这么一段用来求平方根的代码:

/*
================
SquareRootFloat
================
*/
float SquareRootFloat(float number) {
long i;
float x, y;
const float f = 1.5F;

x = number * 0.5F;
y = number;
i = * ( long * ) &y;
i = 0x5f3759df - ( i >> 1 ); //注意这一行
y = * ( float * ) &i;
y = y * ( f - ( x * y * y ) );
y = y * ( f - ( x * y * y ) );
return number * y;
}
普渡大学的数学家Chris Lomont采用暴力方法得到的更好上那么一丁点的值是:0x5f375a86
学过数值分析就知道,算法里面求平方根一般采用的是无限逼近的方法,比如,卡马克的不同之处在于,
他选择了一个神秘的猜测值0x5f3759df作为起始,使得整个逼近过程收敛速度暴涨,对于Quake III所要求的
精度10的负三次方,只需要一次迭代就能够得到结果。
From:http://sd.csdn.net/n/20060607/91403.html
original url from Blog: http://sd.csdn.net/n/20060607/91403.html

数学之美:平方根倒数速算法中的神奇数字 0x5f3759df

http://blog.jobbole.com/105295/?ref=myread 本文由 伯乐在线 - JLee 翻译,黄利民 校稿 英文出处:Christian ...

求0x5f3759df的数学原理

Quake-III Arena (雷神之锤3)是90年代的经典游戏之一。该系列的游戏不但画面和内容不错,而且即使计算机配置低,也能极其流畅地运行。这要归功于它3D引擎的开发者约翰-卡马克(John C...

0x5f3759df的数学原理

Quake-III Arena (雷神之锤3)是90年代的经典游戏之一。   该系列的游戏不但画面和内容不错,而且即使计算机配置低,也能极其流畅地运行。这要归功于它3D引擎的开发者约翰-卡马克 (Jo...

求0x5f3759df的数学原理

为什么这个数比其他数更好呢? http://www.douban.com/note/93460299/ Quake-III Arena (雷神之锤3)是90年代的经典游戏之一。该系列的游戏不但画面...

John Carmack谈软件工程的艺术与科学

在计算机学科中,真正谈得上科学的只有算法,“优化”也只能算工程。然而,真正花在算法及其优化上的时间在编程中所占比例很小。90%程序员所做的只是将功能需求以顺序、分支这样的程序形式实现出来。在这方面,我...

John Carmack:我们为什么不开发Linux游戏

John Carmack:我们为什么不开发Linux游戏 发表于2013-02-13 22:55| 8092次阅读| 来源CSDN| 26 条评论| 作者王然 John Car...

传奇程序员John Carmack 访谈实录 (zz.is2120)

约翰卡马克介绍  //z 2012-10-06 09:57:04 IS2120@BG57IV3.T2508037555.K[T58,L515,R22,V686]    id Software的大...
  • is2120
  • is2120
  • 2012年10月06日 09:52
  • 1814

John Carmack谈论软件工程中艺术和科学的一面

虽然我不是一个游戏超级玩家,但我是因喜欢视频游戏而开始学习编程的(特别是图像渲染的算法)。所以当我看到John Carmack在2012 Quake­Con上的发言时,我想我应该听一听,学习学习游戏设...

约翰·卡马克(John Carmack的全名是John D. Carmack II)

约翰·卡马克(John Carmack的全名是John D. Carmack II) ,他生于1970年8月20日),是享誉世界的著名程序员,在电视游戏领域被尊为偶像。Carmack是id Softw...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:[转贴]John Carmack密码:0x5f3759df
举报原因:
原因补充:

(最多只允许输入30个字)