|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.05.2011, 12:17 | #1 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 16
|
Максимум функции.
Здравствуйте все.
Встала интересная задача. Не соображу с какого боку к ней подойти. Дано: Яблоки - 45 руб/кг. Груши - 72 руб/кг. В кошельке 1000 руб. Задача: На данную сумму 1000 руб. купить наибольшее кол-во кг фруктов. Как я понимаю, необходимо решить функцию на максимум. Типа: ax + by <= z x + y = MAX т.е. 45x + 72y <= 1000 x + y = MAX Как это сделать в Excel'e без макросов? Возможно ли такое? Где копать? В какую сторону смотреть? Никак не соображу Спасибо! Последний раз редактировалось xxyyzz; 27.05.2011 в 12:19. |
27.05.2011, 12:30 | #2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
не... уважаемый.
эта задача решается методом "сопряженных вычислений от обратного". используем функцию минимум, а не максимум. допустим стоимости у вас записаны в колонке В, в ячейках В2 и В3 тогда в любую ячейку пишете это: =1000/мин(B2;B3)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
27.05.2011, 12:30 | #3 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Хм, а разве решение не очевидно - чем меньше цена, тем больше кг?
Функцией МИН находим мин. цену, делим на нее сумму, получает ответ.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
|
27.05.2011, 12:54 | #4 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 16
|
Update.
Если бы всё было так просто.
Э... Задачу неправильно сформулировал. Извините, волнуюсь. Необходимо купить как можно больше фруктов, затратив при этом как можно меньше денег. В обязательном порядке должны быть куплены и яблоки и груши. 45x + 72y = MIN x + y = MAX |
27.05.2011, 13:01 | #5 |
Старожил
Регистрация: 31.12.2010
Сообщений: 2,133
|
Тогда, наверно, должен быть указан вес каждого фрукта, т.е. мин. количество, которое можно купить. Иначе просто берем 0,000000001 кг дорогого фрукта, а остальные деньги тратим на дешевый
Копайте в сторону "подбор параметра" (для одной переменной) или "поиск решения" (для многих переменных), а я исчезаю.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Последний раз редактировалось Казанский; 27.05.2011 в 13:06. |
27.05.2011, 16:50 | #6 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 16
|
Спасибо, Казанский!
Направление было дано верное - "поиск решения".
Возникли другие вопросы. 1. При поиске решения всегда необходимо жамкать кнопки "Поиск решения" и "Выполнить"? Есть ли возможность менять только входные данные (в одной или нескольких ячейках), а нужный результат автоматически пересчитывался на выходе в других ячейках? 2. Не могу понять как в ограничениях сделать условие допустимости значений с нужным разрядом, например десятками. Там только "целое", "двоичное". Как сделать чтобы полученное значение округлялось в нужную сторону? Спасибо. |
27.05.2011, 17:06 | #7 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
однако...
что-то Вы не договариваете. или тут изложены не все условия или эта задача не для "поиска решений"... в первой задаче не получилось случайно, что на 1000р. можно приобрести 22.22кг фруктов (22.22кг яблок + 0кг груш). по п.2: поставте ячейкам формат числовой, два знака после запятой
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
27.05.2011, 17:54 | #8 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 16
|
Ваша правда, IgorGO.
Стараюсь следовать правилам раздела: "просто замените Ваши данные на нейтральные (пулемёты на яблоки, Вову Путина на Васю Пупкина, и т.д.)" На самом деле пример задачи не совсем корректный. Если опять использовать мой корявый пример, то там нужно не 1000 руб, а 2000 руб. По 1000 на каждый фрукт, т.е. примерно должно выдерживаться условие: 45x = 72y = 1 000 или 45x + 72y <= 2000 Получаем, что надо купить 1000/45 = 22.(2) кг яблок и 1000/72 = 13.(8) кг груш Погрешность взвешивания весов составляет 100гр. (вот для чего нужны "десятки") Следовательно, мы можем потратить 45*22.2 = 999 руб на яблоки и 72*13.8 = 993.6 руб на груши. 999+993.6 = 1992.6 < 2000 Вот тут и хотелось бы оптимизации (1992.6 уменьшить,а сумму 22.2 и 13.8 увеличить) На самом деле вместо яблок и груш можно воткнуть, всё что угодно. По сути нужно что: 1. Есть входные данные. Три числа. 2. После некоторых с ними манипуляций на выходе получаем 3 новых числа. Вот эти числа нужно оптимизировать. Из которых одно должно быть по возможности максимальным, а два других по возможности минимальными. Или наоборот, в зависимости от задачи. |
27.05.2011, 18:02 | #9 |
Пользователь
Регистрация: 27.05.2011
Сообщений: 16
|
Вдогонку.
Опять же хотелось бы, чтобы в трёх ячейках можно было менять цифры:
2000 руб - денег в кошельке 45 и 72 - цены на фрукты а на выходе получать в других 3-х ячейках: - фрукты в кг до десятых - сэкономленную прибыль от 2000 руб "На лету" такое возможно без использования каждый раз кнопки "Выполнить"? |
27.05.2011, 19:01 | #10 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
повторюсь - это задача не для "поиска решений".
летайте...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
с++ первый максимум | kate311893 | Помощь студентам | 0 | 26.05.2010 14:11 |
максимум в диапозоне | kate311893 | Общие вопросы C/C++ | 0 | 26.05.2010 14:09 |
Максимум если. | Baloo007 | Microsoft Office Excel | 3 | 08.07.2009 13:01 |
максимум | meteor | Microsoft Office Excel | 2 | 06.12.2008 13:08 |