[Algorithm]巧用多项式系数与进制的联系

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10994773.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

单项式(monomial):由数或字母的积组成的代数式叫做单项式,单独的一个数或一个字母也叫做单项式。这个名词是清代数学家李善兰译书时根据原词概念汉化的。单项式中的数字因数叫做这个单项式的系数(Coefficient),一个单项式中,所有字母的指数的和叫做这个单项式的次数(Degree of a monomial)。单项式是几次,就叫做几次单项式。

多项式(polynomial)定义:是指由变量、系数以及它们之间的加、减、乘、幂运算(非负整数次方)得到的表达式。

广义多项式定义:1个或0个单项式的和也算多项式。按广义定义,多项式就是整式。实际上,还没有一个只对狭义多项式起作用,对单项式不起作用的定理。0作为多项式时,次数定义为负无穷大(或0)。单项式和多项式统称为整式。多项式中不含字母的项叫做常数项。多项式是简单的连续函数,它是平滑的,它的微分也必定是多项式。

多项式函数:形如f(x)=an·x^n+an-1·x^(n-1)+…+a2·x^2+a1·x+a0的函数,叫做多项式函数,它是由常数与自变量x经过有限次乘法与加法运算得到的。当n=1时,其为一次函数y=kx+b,当n=2时,其为二次函数。

问题:已知在一个黑箱中有一个关于x的多项式函数f(x),f(x)的系数都是正整数,输入一个正整数N,黑箱返回f(N)的值,请问最少输入多少次,可以获得多项式f(x)每一项的系数,即求出多项式函数f(x)?

思路历程:

进制的本质是以该进制为变量的多项式的系数。

举例:十进制

4321=4*10^3+3*10^2+2*10^1+1*10^0

答案:只需要向黑箱输入两次,即可获得多项式系数。

第一次:输入1,以确保对于任意系数

黑箱返回f(1):即整个多项式的系数之和。记为S = f(1)。

第二次:输入比S大的值S+N,其中N为正整数。将黑箱输出的值f(S+N)换成S+N进制,多项式系数即为(S+N)进制表示的数字。

如:输入S + 1,将黑箱输出的值f(S+1)换成S+1进制。即:

f(S+1)= 

对应的系数即为f(x)的系数:

测试:

黑箱中的多项式函数:f(x) = 2*x^2+3*x^1+4*x^0

f(1)=9

f(9+1)=234

直观的将234转换为10进制的234:234=2*10^2+3*10^1+4*10^0

所以原多项式函数的系数依次为2、3、4.

继续测试该多项式函数。

f(1)=9

f(9+2)=279

用短除法将279转换为11进制的234:279=2*11^2+3*11^1+4*11^0

所以原多项式函数的系数依次为2、3、4.

原文地址:https://www.cnblogs.com/strengthen/p/10994773.html