Определение
Максимумы и минимумы данной функции - это наибольшие и наименьшие значения функции либо в заданном диапазоне, либо иным образом во всей области функции.
Вызов
Задача состоит в том, чтобы найти локальные максимумы и минимумы заданной полиномиальной функции любым удобным для вас способом . Не волнуйтесь, я постараюсь объяснить проблему и сделать ее максимально простой.
На входе будут содержаться все коэффициенты полинома от одной переменной в порядке убывания или увеличения мощности (на ваше усмотрение). Например,
[3,-7,1]
будет представлять3x2 - 7x + 1 = 0
[4,0,0,-3]
будет представлять4x3-3=0.
Как решить (используя производные)?
Теперь, скажем, наш ввод - [1,-12,45,8]
это не что иное, как функция .x3 - 12x2 + 45x + 8
Первая задача - найти производную этой функции. Поскольку это полиномиальная функция, то это действительно простая задача.
Производная IS . Любые постоянные термины, присутствующие с , просто умножаются. Кроме того, если есть добавленные / вычтенные термины, то их производные также будут добавлены или вычтены соответственно. Помните, что производная от любого постоянного числового значения равна нулю. Вот несколько примеров:
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, чтобы ваш код мог с этим справиться.
Ввод будет действительным, так что решения х не являются седловыми точками.
Кроме того, вы не обязаны делать это по производному методу. Вы можете использовать любой метод, который вам нравится.
Пример ввода и вывода
[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
что не имеет смысла, так как мы имеем дело с функцией, а не решением уравнения