关于拉克斯著作中区间十等分法无法生成无限9型无限小数的技术问询
关于拉克斯著作中区间十等分法无法生成无限9型无限小数的技术问询
我知道1等于0.999999...,这两个是同一个数,但我搞不懂为什么拉克斯(Lax)描述的那种把区间十等分的方法,没法生成这种末尾全是9的无限小数?
核心原因:Lax的区间规则强制了唯一小数表示
咱们先拆解拉克斯设定的区间划分逻辑,就能明白问题所在:
拉克斯的方法里有个关键规则:每一步划分的区间都是左闭右开的,也就是每个区间包含左端点,但排除右端点,而且每个数只能属于恰好一个区间。咱们用1这个数来走一遍流程:
- 第一步划分整数区间:
n ≤ a < n+1,1刚好落在[1,2)的左端点,所以整数部分确定为1。 - 把
[1,2)十等分,得到[1.0,1.1), [1.1,1.2), ..., [1.9,2.0),1仍然是[1.0,1.1)的左端点,所以第一位小数取0。 - 再把
[1.0,1.1)十等分,1还是新的子区间[1.00,1.01)的左端点,第二位小数继续取0。 - 以此类推,每一步都会得到第k位小数为0,最终生成的小数是
1.000000...。
那为什么0.999999...不会被生成?因为这个小数本质上等于1,但按照拉克斯的规则,0.999...对应的是“每一步都试图卡在某个区间的右端点”——比如0.9 ≤ a < 1.0,但1并不满足a <1.0,所以它不会被归到这个区间里,而是直接被归到[1.0,1.1)的左端点,用1.000...来表示。
本质是避免重复表示
拉克斯的方法其实是刻意设计出来避免一个数对应两种不同小数表示的情况(比如1和0.999...)。通过左闭右开的区间划分,他给每个数只分配了唯一的小数形式——也就是不会出现末尾全是9的情况,因为这种形式对应的数,已经被“优先”分配给了另一个末尾全是0的表示。
简单来说:不是0.999...不存在,而是拉克斯的区间规则为了保证表示的唯一性,直接跳过了这种重复的表示方式,选择了更直观的末尾全0的形式。
备注:内容来源于stack exchange,提问作者xin zen
相关产品推荐
相关产品推荐

