范围的长度等于Range.Max - Range.Min对于IEEE 754双精度数字,长度为1的范围包含最多的双精度数?
例如,“[0-1]”和“[3.5-4.5]”是长度1范围的示例。
那么什么样的长度为1的范围(如果有的话)的双精度数最多?
我的猜测是[-0.5 - 0.5]或[0-1],但没有办法证明这种方式或其他方式。
范围的长度等于Range.Max - Range.Min对于IEEE 754双精度数字,长度为1的范围包含最多的双精度数?
例如,“[0-1]”和“[3.5-4.5]”是长度1范围的示例。
那么什么样的长度为1的范围(如果有的话)的双精度数最多?
我的猜测是[-0.5 - 0.5]或[0-1],但没有办法证明这种方式或其他方式。
我同意发表由霍震霆屏蔽prior answer。这是一个更具体理由的尝试。
让一个“块”的数字是具有相同指数和符号的数字集合。每个块包含2^52个数字。如果你不想同时计数正和负的零,它们不会重叠,可以说是零的例外。
范围[0,0.5)包含指数为0到1021,1022块的所有数字。 (-0.5,0.5)包含2044个块。 [-0.5,0.5]包含所有这些数字加上两个端点。
更改为[0,1]删除指数为0到1021的负数的1022个块,并为[0.5,1]添加一个块。指数为1022的数字。
[1,2)是一个单独的块,它是最后一个完全覆盖长度为1的块。任何长度为1的范围(-2,2)都只能包含一个分块。
在2044 *(2^52)+2,[-0.5,0.5]是明显的赢家。
IEEE浮点数x的分布大致与1/abs(x)成正比,因此长度为1的范围中具有最多可表示数字的范围是[-0.5,0.5]。
每个尾数代表2^52,我们称之为块? 范围[1-2],[.5-1],[.25-.5],[.125,.25)... 有一个指数,所以范围[-.5-。 5)包含最多的Exponent/Sign组合,使其包含最多的双打。 这是有道理的。 –