【问题标题】:How to check if a number is an integer in Pari/GP?如何在 Pari/GP 中检查数字是否为整数?
【发布时间】:2016-04-22 01:26:32
【问题描述】:

我正在尝试编写这样的 if 语句

 if(denominator([(i-1)! + 1] / i)-1,print(hi),print(ho))

i 可以是任何整数,例如 10。当我将 i 设置为 10 时,会出现以下错误:

? [(x-1)! + 1] / x
  ***   this should be an integer: [(x-1)!+1]/x
                                    ^-----------

我真的只需要检查[(x-1)! + 1] / x 是否为整数。分母是我想出的,我也尝试了 Mod 但也无法正常工作。

【问题讨论】:

    标签: if-statement math factorial pari pari-gp


    【解决方案1】:

    您似乎对xi 的名称感到困惑。 请看下面的表达式是否正常工作:

    i = 10;
    print([(i-1)! + 1] / i);
    gp > [362881/10]
    

    【讨论】:

      【解决方案2】:

      我不确定错误是什么,但我最终使用了一个下限函数来确定它是否为整数。

      【讨论】:

        【解决方案3】:

        你可以使用:

        print(if(((i-1)! + 1) % i, "hi", "ho"))
        

        如果i(在您的问题中x)不是整数,您会从!(阶乘)运算符收到错误(但也请参阅gamma)。

        这里不要使用[],它会创建一个向量

        我使用的运算符% 给出了余数。例如11 % 4 给出整数3。相比之下,Mod(11, 4) 不是普通整数,它是环 Z/4Z 的成员(整数模 4)。这在很多情况下都非常有用。

        我猜你想写出字符串,所以我使用了引号"。如果 hi 和 ho 是变量,当然省略引号。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-09-05
          • 1970-01-01
          • 1970-01-01
          • 2018-10-16
          • 2018-02-25
          • 2015-01-09
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多