Fak*_*een 9 language-agnostic algorithm floating-point numbers
这有什么区别:
average = (x1+x2)/2;
deviation1 = x1 -average;
deviation2 = x2 -average;
variance = deviation1*deviation1 + deviation2*deviation2;
Run Code Online (Sandbox Code Playgroud)
还有这个:
average2 = (x1+x2);
deviation1 = 2*x1 -average2;
deviation2 = 2*x2 -average2;
variance = (deviation1*deviation1 + deviation2*deviation2) / 4;
Run Code Online (Sandbox Code Playgroud)
请注意,在第二个版本中,我试图尽可能延迟分割.第二个版本[延迟划分]是否会提高准确性?
上面的代码段仅作为示例,我不是要尝试优化此特定代码段.
顺便说一句,我问的是一般的划分,不仅仅是2或2的幂,因为它们减少到IEEE 754表示的简单移位.我用2除法,只是为了用一个非常简单的例子说明问题.