摘要 用错数解释计算机的错误计算(一百一十八)中的错误计算。
计算机的错误计算(一百一十八)给出一个循环迭代
用C语言或Java编程计算,则 均是错误结果。
下面用错数解释其出错原因。
首先,将迭代看作 这时,由于 所以 从而错数
其次,
因此,错误为 或
这样,循环迭代最好的结果是每次仅有2位错误数字,即 到 依次含有 0位、2位、4位、...、16位错误数字;最坏的结果为 到 依次含有 0位、3位、6位、9位、12位、15位、18(或16)位错误数字。即最坏情形下, 是错误结果,最好情形下, 是错误结果。这里错误结果的意思是不含有正确有效数字。
点评:有读者提问,这样的案例多吗?如何构造?
答:其实不难。对于不动点来说,由于自变量与函数值相同(或几乎相同),因此,错数公式中只剩下导数的扩展整数位数。于是,只要导数含有整数部分,那么循环时,就会不断产生错误数字,从而不断减少正确数字,最终得出错误结果。
比如,
其对应导数含有2位整数,所以循环时, 一定是错误结果。