您已经熟悉写下一个数字,并让它表示十、百等等的特定组合。这是一种数字表示形式,但还有其他形式。我们将探讨进制和连分数。
您已经熟悉十进制数表示法。例如,数字 2818 等于
- 2×103+8×102+1×101+8×100
我们可以用任何数字替换这里的 10,从而得到不同的数字。一般来说,我们可以用以下公式用 b 进制表示整数 n
- akbk+ak-1bk-1+...+a0b0
其中 ai 均小于 b。
我们将 b 进制数字写成 (akak-1...a0)b。
例如,如果我们有 6 进制数字 243,我们将它写成 (243)6。当我们在十进制中时,我们只需写下数字:例如,十进制数字 155 只是写成 155。
然而,给定一个 b 进制数字,我们如何将其转换为我们自然的十进制系统?同样,我们如何将十进制数字转换为 b 进制?
前者相对容易,后者更难。
我们只需使用 b 进制数字的定义将 b 进制数字转换为十进制 - 也就是说,我们只需将它乘开。
例如
- (919)12=9×122+121+9=1317。
然而,这项任务稍微困难一些,并且有几种方法可以执行此任务。
一种方法是使用 数论 部分中的除法算法来写下每一步。例如,如果我们想将 1317 转换为 12 进制
- 1317 = 12 × 109 + 9
- 109 = 12 × 9 + 1
- 9 = 12 × 0 + 9
因此,在 12 进制中,(919)12=1317。
我们刚刚看到了如何将整数从一个进制转换为另一个进制,但我们如何处理实数的转换呢?
回想一下,在十进制中,我们将数字 11.341 写成
- 1×101+1×100+3×10-1+4×10-2+1×10-3
因此,我们可以扩展上面 b 进制数字的定义,使其为
akbk+ak-1bk-1+...+a0b0+a-1b-1+...
其中 ai 均小于 b,并且总和可以终止或无限进行。
同样,我们如何将这些数字从一个进制转换为另一个进制?我们可以转换整数部分,但小数部分(小于 1 的部分)怎么办?
假设我们想将十进制的 .341 转换为 6 进制。
我们使用以下规则写一个表
i ci γi 6γi
0 0 .341 2.046
1 2 .046 0.276
2 0 .276 1.656
3 1 .656 3.936
4 3 .936 5.616
5 5 .616 3.696
6 3 .696 4.176
7 4 .176 1.056
8 1 .056 0.336
9 0 .336 2.016
看起来这个展开将永远进行下去!我们需要计算更多 i 的值,看看我们是否会遇到 γi 的重复值,从而确定我们是否得到重复。
因此,我们有近似值,即 .341 接近于 (.20135341)6。(使用定义计算此值。我们的近似值有多接近?)
如果我们得到一个 b 进制表示形式,例如看起来像 (.18191819181918191819...)b,我们将这种表示形式称为周期性。我们通常将其写成
我们使用相同的程序将小数转换为 b 进制,方法是将上面的 6 替换为 b。
我们有一个巧妙的技巧可以用来将 b 进制的小数 n 转换为十进制,前提是表示形式是重复的。让我们看一个例子
考虑。然后
现在
即
然后
最后
将 (3145)7 转换为 10 进制,我们得到以下结果
从某种意义上说,b 进制表示很好,但它在精度方面有一些缺点。我们无法使用 b 进制表示来可靠地表示数字。这就是 连分数 表示派上用场的地方,它在二次无理数方面有一些很好的性质。
连分数 是以下形式的数字
由于这种表示法显然相当繁琐,我们将其简化为
我们再次问自己,如何进行这种数字表示之间的转换?同样,从连分数表示转换更容易,而从其他表示转换到连分数则更复杂。
我们只需使用连分数的定义来进行转换。这看起来可能很困难,但实际上相当简单,具体取决于从哪一端开始。让我们看一个例子
考虑
现在,我们从右到左进行计算。首先,我们有分数
下一个数字 2 告诉我们执行
然后取倒数得到
现在下一个数字1告诉我们要执行
然后取倒数得到
现在我们必须加上q0,它始终大于1,然后得到结果
再次,我们建立一个表格。
考虑分数12/22,并在表格中使用以下规则
i θi θi-1 qi
0 12/22 . 0
1 12/22 22/12 1
2 5/6 6/5 1
3 1/5 5/1 5
(由于下一行将全是0,所以停止)
因此,现在12/22的连分数为[0; 1, 1, 5]。
首先,我们要注意周期连分数(其中qi序列重复)的一个很好的性质,即
- 每个周期连分数都是形如下的数
例如,考虑连分数
现在
我们可以将其改写为
现在我们可以简化得到
这是一个二次方程,可以解出
- .
注意,我们可以将连分数始终写成 (aα+b)/(cα+d)=α 的形式,这说明每个二次无理数都有一个重复的连分数表示
假设我们有一个表示数字 n 的连分数 [q0; q1, ... ]。让我们检查一下分数序列 [q0],[q0; q1],[q0; q1, q2] 等等。序列中的每个元素被称为 收敛值。事实证明,收敛值序列提供了对 n 的最佳有理数逼近。
这些可以从连分数表示中计算出来,也可以从计算表中计算出来。让我们取 .
像以前一样继续,但是添加一个额外的 -1 行,并设置 u-1=1,v-1=0。根据规则进行迭代
该序列重复,连分数为 [2; 2, 4, 2, 4, ... ]。我们可以继续这个过程生成更多的收敛分数,收敛分数为 2, 5/2, 22/9, 49/20, ...