也许这是一个愚蠢的问题,但直到我最近才被迫这样做,我才想到它。
假设一个程序以完全相同的状态初始化,并且没有未初始化变量的未定义行为。CPU 上的寄存器状态在代码执行之前可能会有所不同。假设没有外部现象导致异常位翻转。
相同的数值计算序列是否总是产生相同的结果(如双精度和浮点数的整个位表示)?换句话说,数值误差是确定性的吗?
编辑:我知道指针地址每次都可能不同,但让我们抽象指针地址,以免在任何计算中使用。
也许这是一个愚蠢的问题,但直到我最近才被迫这样做,我才想到它。
假设一个程序以完全相同的状态初始化,并且没有未初始化变量的未定义行为。CPU 上的寄存器状态在代码执行之前可能会有所不同。假设没有外部现象导致异常位翻转。
相同的数值计算序列是否总是产生相同的结果(如双精度和浮点数的整个位表示)?换句话说,数值误差是确定性的吗?
编辑:我知道指针地址每次都可能不同,但让我们抽象指针地址,以免在任何计算中使用。