有理数是可以表示为 (p/q) 的数,其中 (p) 和 (q) 都是整数,且 (q\ne0)。有理数的集合记作 (\mathbb{Q}),包括正分数、负分数、所有整数以及零。有理数属于实数;不能表示为这种商的实数称为无理数。有理数的例子有 (3/4)、(-7/2)、(5=5/1) 和 (0=0/1)。(math.libretexts.org)
表示与相等关系
分数是有理数的一种表示形式,不同的分数未必表示不同的数。例如,(1/2)、(2/4) 和 (50/100) 都表示同一个值。一般而言,
[ \frac{a}{b}=\frac{c}{d} \quad\Longleftrightarrow\quad ad=bc, \qquad b,d\ne0. ]
将分子和分母同时乘以或除以同一个非零整数,只要所得的分子和分母仍为整数,分数的值就保持不变。当分子和分母除 1 以外没有其他正公因数时,分数称为最简分数。若再规定分母为正,这种最简表示便是唯一的;此时,零表示为 (0/1)。公因数可以用欧几里得算法求得。(math.ucdavis.edu)
在形式化构造中,有理数是满足 (q\ne0) 的数对 ((p,q)) 所组成的等价类。当且仅当 (ps=rq) 时,数对 ((p,q)) 与 ((r,s)) 被视为等价。这种构造使相等关系不依赖于表示某个值时所选用的分数。(math.ucdavis.edu)
算术运算与代数结构
根据算术运算法则,有
[ \frac{a}{b}+\frac{c}{d}=\frac{ad+bc}{bd}, \qquad \frac{a}{b}-\frac{c}{d}=\frac{ad-bc}{bd}, ]
[ \frac{a}{b}\frac{c}{d}=\frac{ac}{bd}, \qquad \frac{a/b}{c/d}=\frac{ad}{bc}, ]
其中各分母均不为零,除法公式还要求 (c\ne0)。因此,有理数的加法、减法、乘法,以及除以非零有理数的运算,结果始终是有理数。这些封闭性是普通分数运算的基础。(math.biola.edu)
在抽象代数中,(\mathbb{Q}) 是一个域(数学):它具有加法单位元和乘法单位元,每个元素都有加法逆元,每个非零元素都有乘法逆元。其通常的序关系与这些运算相容,因此它是一个有序域。如果分母为正,分数的大小比较就可以归结为整数的大小比较:(a/b<c/d) 当且仅当 (ad<bc)。(math.ucdavis.edu)
十进制展开
在十进制位值制记数法中,一个实数是有理数,当且仅当它的十进制展开是有限小数,或从某一位起反复出现一个固定的有限数字段。因此,
[ \frac38=0.375,\qquad \frac13=0.\overline3,\qquad \frac16=0.1\overline6. ]
“从某一位起”这一点很重要:循环不一定紧接着小数点开始。上划线表示其下方的数字无限重复。因此,像 (0.333333) 这样的有限小数并不恰好等于 (1/3)。(mathforteachers.pressbooks.tru.ca)
小数最终出现循环的原因在于:用正整数分母进行长除法时,可能出现的余数只有有限个。要么余数变为零,小数展开就此终止;要么某个余数再次出现,使后续数字开始循环。反过来,将循环小数乘以适当的 10 的幂来移动小数点,再作减法,就能消去其循环部分。例如,若 (x=0.\overline{27}),则 (100x-x=27),所以 (x=27/99=3/11)。(jirka.org)
最简分数能够表示为有限小数,当且仅当其分母除了 2 和 5 以外不含其他素数因子。小数是否终止取决于记数法的底数:(1/3) 在十进制中是循环小数,在三进制中却是有限小数。有些数值还有两种小数表示,例如 (0.5000\ldots=0.4999\ldots)。(math.biola.edu)
稠密性、可数性与不完备性
有理数构成实数轴的一个稠密子集:任意两个不同的实数之间都存在一个有理数。对于两个有理数 (a<b),它们的中点 ((a+b)/2) 也是有理数。反复进行这一构造可知,每个非空开区间内都有无穷多个有理数。稠密性使我们能够用有理数逼近任何实数,并让误差任意小。(math.ucdavis.edu)
尽管如此,(\mathbb{Q}) 仍是一个无限的可数集。通过系统地枚举由整数分子和分母组成的数对,并略去重复的值,就可以将其元素逐一列出。因此,它与自然数具有相同的基数,而实数集是不可数的。稠密性与基数描述的是不同的性质:每个区间内都有某个集合的元素,并不意味着这个集合包含每一个点。(jirka.org)
对于数学分析而言,(\mathbb{Q}) 的一个关键局限是:在通常的距离下,它并不完备。逼近 (\sqrt2) 的有理数 (1,1.4,1.41,1.414,\ldots) 构成一个柯西序列,但其极限不是有理数。这一点可以用反证法证明:若 (\sqrt2=p/q),且该分数已是最简分数,那么 (p^2=2q^2) 将迫使 (p) 和 (q) 都是偶数。构造实数便补上了这类缺失的极限。(math.ucdavis.edu)
精确计算
在计算机科学中,有理数运算可以用整数分子和分母存储一个值,从而保留精确结果,而不是将其替换为经过舍入的小数。例如,Python 的 fractions 模块会将分数化为标准形式,并支持有理数运算。其文档区分了从精确的十进制字符串构造分数与从浮点运算中的浮点值构造分数:后者保留的是实际存储的二进制近似值,它可能与原本想要表示的十进制分数不同。(docs.python.org)