📜  1.3333 是有理数吗?(1)

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

判断一个数是否为有理数

在计算机科学中,我们经常需要判断一个数是否为有理数。下面将介绍如何判断一个数是否为有理数,并以问题“1.3333 是有理数吗?”为例进行说明。

什么是有理数

有理数是可以表示为两个整数之比的数,其中分母不为0。例如,3、-6/7、0都是有理数,而$\pi$、$\sqrt{2}$、$\infty$都不是有理数。

判断一个数是否为有理数

判断一个数是否为有理数可以通过以下步骤:

  1. 判断这个数是否为整数,如果是,则它是有理数。
  2. 将这个数表示为分数形式$\frac{p}{q}$,其中$p$和$q$为整数且$q \neq 0$。
  3. 判断$p$和$q$是否互质,如果互质,则这个数是有理数;如果不互质,则可以约分为互质的形式,即$\frac{p}{q}=\frac{p'}{q'}$,其中$p'$和$q'$是$p$和$q$的公因数只有1的形式,这个数还是有理数。

因此,我们需要编写一个程序判断给定的数是否为有理数。下面是一个判断是否为有理数的python函数:

def is_rational_number(num):
    # 判断是否为整数
    if isinstance(num, int):
        return True
    
    # 判断是否为分数
    if isinstance(num, float):
        p, q = num.as_integer_ratio()
        
        # 判断p和q是否互质
        def gcd(a, b):
            while b:
                a, b = b, a % b
            return a
        return gcd(p, q) == 1
    
    # 不是整数也不是分数,不是有理数
    return False
判断1.3333是否为有理数

现在,我们可以使用上述函数判断1.3333是否为有理数。下面是一个调用is_rational_number函数判断1.3333是否为有理数的python代码片段(markdown格式):

我们可以运行上述程序,得到以下输出:


因此,1.3333是有理数。