СОставляем функцию Лагранжа L=x1+4x2+x3-10x4-5x5 +a(x1-x2+x3+x4-4x5)+ +b(x1+x2+5x3+3x4-4x5) и записываем систему из уравнений: приравниваем к нулю производные функции L, а еще два уравнения - это заданные условия. Находим решение - это будет точка условного экстремума, проверяем ее на максимум.
зы Хотя, условие не совсем четко записано. Если имеется в виду, что функция зависит от пяти переменных х1,х2,х3,х4,х5, то тогда задана линейная функция и линейные ограничения. Скорее всего, максимума не будет...
#include <stdio.h> #include <stdlib.h> int compare(void *a, void *b) { int va = *(int*)a; int vb = *(int*)b; if(va == vb) return 0; return va < vb ? -1 : 1; }
int max_index(void *base, int n, int width, int (*compare)(void *a, void *b)) { int i, j = 0; char max[width]; memcpy(max, base, width); for(i = 1; i < n; i++) { if( compare(base+i*width, max) > 0) { memcpy(max, base+i*width, width); j = i; } } return j; }
int main() { int n; scanf("%d", &n); int a[n]; for(int i = 0; i < n; i++) scanf("%d", &a[i]); printf("%d\n", a[max_index(a, n, sizeof(int), compare)]); }
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку