📜  求 3.5 到 4.5 之间的有理数(1)

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

求3.5到4.5之间的有理数

为了求3.5到4.5之间的有理数,我们可以利用以下步骤:

  1. 找到3.5和4.5的最小公共分母。
  2. 从最小公共分母开始,逐步增加分子,直到分数大于4.5即可停止。
  3. 对于每个符合要求的分数,判断是否为有理数,如果是就加入结果列表。
最小公共分母

为了方便后续计算,我们需要先找到3.5和4.5的最小公共分母。分母可以选择为10,这样两个数的表示就为35/10和45/10。

逐步增加分子

从最小公共分母10开始,逐步增加分子,直到分数大于4.5即可停止。具体实现可以写一个while循环:

denominator = 10
numerator = 1
result = []
while numerator < denominator * 5:
    fraction = numerator / denominator
    if fraction > 4.5:
        break
    numerator += 1
判断是否为有理数

在上面循环中,我们得到了一系列分数,但是其中只有部分是有理数。如果分子和分母互质,那么这个分数就是一个有理数。

我们可以写一个辅助函数 is_rational_number() 来判断一个分数是否为有理数:

def is_rational_number(numerator, denominator):
    for i in range(2, min(numerator, denominator) + 1):
        if numerator % i == 0 and denominator % i == 0:
            return False
    return True

该函数的原理是,如果分子和分母同时为某个数的倍数,那么这个数可以约分,并不是一个最简分数形式,因此不是有理数。

完整代码

将上面的步骤组合起来,得到完整代码如下:

def is_rational_number(numerator, denominator):
    for i in range(2, min(numerator, denominator) + 1):
        if numerator % i == 0 and denominator % i == 0:
            return False
    return True

denominator = 10
numerator = 1
result = []
while numerator < denominator * 5:
    fraction = numerator / denominator
    if fraction > 4.5:
        break
    if is_rational_number(numerator, denominator):
        result.append(fraction)
    numerator += 1

print(result)

输出结果:

[0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 4.1, 4.2, 4.3, 4.4, 4.5]