Визначення
Максимуми і мінімуми даної функції - це найбільші і найменші значення функції або в межах заданого діапазону, або іншим чином у межах всієї області функції.
Виклик
Завдання полягає в тому, щоб знайти локальні максимуми і мінімуми заданої функції полінома, використовуючи будь-який метод, який вам може сподобатися . Не хвилюйтесь, я постараюсь пояснити виклик і тримати його максимально просто.
Вхід буде містити всі коефіцієнти одночленної змінної многочлена в порядку зменшення або збільшенні потужності (залежить від вас). Наприклад,
[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 у вихідну функцію та поверніть результати. Це має бути вихід .
Приклад
Візьмемо приклад, про який ми згадували раніше, тобто [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]
Припущення
Припустимо, що всі вхідні коефіцієнти є цілими числами . Вони можуть бути в порядку збільшення чи зменшенні потужності.
Припустимо, що вхід є принаймні двочленним многочленом . Якщо у многочлена немає цілих розв’язків, ви можете повернути що завгодно.
Припустимо, що кінцевим результатом будуть лише цілі числа.
Ви можете надрукувати результати в будь-якому порядку. Ступінь введеного многочлена не повинна перевищувати 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
це не має сенсу, оскільки ми маємо справу з функцією, не розв'язуючи рівняння.