定义
给定函数的最大值和最小值是在给定范围内或在函数的整个域内的函数的最大值和最小值。
挑战
面临的挑战是使用任何您喜欢的方法来找到给定多项式函数的局部最大值和最小值。不用担心,我会尽力解释这一挑战,并使其尽可能简单。
输入将按幂的降序或升序(由您决定)包含单个变量多项式的所有系数。例如,
[3,-7,1]
将代表3x2 - 7x + 1 = 0
[4,0,0,-3]
将代表4x3-3=0.
如何解决(使用导数)?
现在,假设我们的输入是[1,-12,45,8]
,但仅是函数。x3 - 12x2 + 45x + 8
第一项任务是找到该函数的导数。由于它是多项式函数,因此确实是一项简单的任务。
的导数是。存在的任何常数项都将简单地相乘。同样,如果有添加/减去的项,则它们的导数也要分别添加或减去。请记住,任何恒定数值的导数均为零。这里有一些例子:
xn
n*xn-1
xn
x3 -> 3x2
9x4 -> 9*4*x3 = 36x3
-5x2 -> -5*2*x = - 10x
2x3 - 3x2 + 7x -> 6x2 - 6x + 7
4x2 - 3 -> 8x - 0 = 8x
现在,通过将新多项式等于零来求解方程,并且仅获得x的整数值。
将这些x值放入原始函数中并返回结果。那应该是输出。
例
让我们以前面提到的示例为例[1,-12,45,8]
。
- 输入:
[1,-12,45,8]
- 功能:
x3 - 12x2 + 45x + 8
- 导数->
3x2 - 24x + 45 + 0 -> [3,-24,45]
- 解方程,我们得到或。
3x2 - 24x + 45 = 0
x = 3
x = 5
- 现在将
x = 3
和x = 5
放入函数中,我们得到了值(62,58)
。 - 输出->
[62,58]
假设条件
假设所有输入系数都是整数。它们可以按功率递增或递减顺序排列。
假设输入至少为2度多项式。如果多项式没有整数解,则可以返回任何值。
假设最终结果将仅为整数。
您可以按任何顺序打印结果。输入多项式的次数不得超过5,以便您的代码可以处理它。
输入有效,因此x的解不是鞍点。
此外,您不必通过派生方法来执行此操作。您可以使用任何您喜欢的方法。
样本输入和输出
[2,-8,0] -> (-8)
[2,3,-36,10] -> (91,-34)
[1,-8,22,-24,8] -> (-1,0,-1)
[1,0,0] -> (0)
计分
这是代码高尔夫球,因此最短的代码获胜。
(-1, 0, 1)
,我相信这是实际的正确答案...虽然不确定。如果您不同意我的聊天记录,请与我联系。
The input will be valid so that the solutions of x are not saddle points
,该案[1,0,0,3]
似乎给了一个鞍点。
x^3 - 12x^2 + 45x
+ 8 = 0
,尽管我个人更喜欢将其编写为f(x)=x^3-12x^2+45x+8
不带,=0
因为这=0
是没有意义的,因为我们正在处理函数,而不是求解方程。