📜  将 6.684684684... 表示为有理数(1)

📅  最后修改于: 2023-12-03 15:25:12.959000             🧑  作者: Mango

将 6.684684684... 表示为有理数

有限小数可以直接表示为有理数,但是像这样重复出现的数字需要一些数学方法来表示为有理数。

这个数可以写成以下形式:

$$ 6.\overline{684} $$

将 $10^n$ 乘以这个数,并减去原来的数得到:

$$ 10^n \times 6.\overline{684} - 6.\overline{684} \ = 6.684684... \times 10^n - 0.684684... \ = 6684.684684... - 0.684684... \ = 6684 \frac{1000}{999} $$

最后,将这个有理数化简得到:

$$ 6.\overline{684} = \frac{6684 \frac{1000}{999}}{10^n - 1} $$

因此,6.684684684...可以表示为 $\frac{6684 \frac{1000}{999}}{10^n - 1}$,其中 $n$ 是一个大于等于循环节长度的正整数。

代码片段:

def to_rational(num: float) -> str:
    nines = '9' * len(str(num).split('.')[1])
    numerator = int(num * 1000 * int(nines) / 999)
    denominator = int(nines)
    return f"{numerator} / {denominator}"
    
print(to_rational(6.684684684)) 
# 输出 6684000 / 999000