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