Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 找出多项式是否有多个根_Math_Prolog - Fatal编程技术网

Math 找出多项式是否有多个根

Math 找出多项式是否有多个根,math,prolog,Math,Prolog,我知道多项式的根叫做重根,如果它是 我对prolog相当陌生,我想写一个代码,其中我有一个列表(例如:3x^2+2x+1)作为输入,我必须找到多项式是否有多个根 为了计算导数,我只需将列表中的每个条目乘以其索引,然后删除最后一个条目。但我不知道如何计算两个多项式之间的共享根,甚至不知道如何使用prolog计算一个多项式的根 任何帮助都将不胜感激计算多项式及其导数之间的gcd。根是多重的,当且仅当它是gcd的根。这可能会降低程度,这将增加你找到多个根的机会 有一些策略可以遵循: 如果gcd的阶数不

我知道多项式的根叫做重根,如果它是

我对prolog相当陌生,我想写一个代码,其中我有一个列表(例如:
3x^2+2x+1
)作为输入,我必须找到多项式是否有多个根

为了计算导数,我只需将列表中的每个条目乘以其索引,然后删除最后一个条目。但我不知道如何计算两个多项式之间的共享根,甚至不知道如何使用prolog计算一个多项式的根


任何帮助都将不胜感激

计算多项式及其导数之间的
gcd
。根是多重的,当且仅当它是
gcd
的根。这可能会降低程度,这将增加你找到多个根的机会

有一些策略可以遵循:

  • 如果
    gcd
    的阶数不大于2,则可以对其根使用闭合公式


  • 如果多项式具有整数系数,则可以使用来查找
    gcd
    的有理根(如果有)

  • 对于一般情况,您可以使用将所有根以尽可能小的间隔分开,这是实现无限精度的一种方法


  • 如果多项式具有整数系数,则可以使用来查找其某些根。您也可以使用其中一个来查找整数的因子。这些因子都不可用吗?给定一个根r1,使用原始多项式的合成除法(x-r1)得到下一个根。正如我说的,我是prolog新手,你能解释一下如何计算多项式的gcd吗?(我已经为两个数字的gcd编写了代码,但现在我不知道如何将其推广到多项式)@AlalehA首先编程两个多项式的加法,一个多项式与一个数字的乘积,然后是带商和余数的除法算法。一旦你有了它,计算
    gcd
    的算法与你计算整数的算法是一样的。