Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Алгоритм выбора необходимого количества товаров 
:(
    Опции темы
Deo
  Дата 15.4.2010, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 13
Регистрация: 24.3.2010

Репутация: нет
Всего: нет



Привет.
Наткнулся тут на одну интересную задачу.

Предприятие "Витязь" торгует рубероидом одной марки. Рубероид поступает в рулонах различной длины. Учет товара ведется на счете 41, на котором предусмотрен аналитический и количественный учет по товарам. Каждый товар имеет следующие обязательные характеристики: Код, наименование, длина рулона, отпускная цена рулона.

Отпуск товара осуществляется по заказам покупателей только целыми рулонами. Количество отпускаемого товара запрашивается покупателем в метрах.

Требуется разработать настройку, обеспечивающую формирование счета покупателю, исходя из заказа покупателя и учетных остатков товаров.

В счет необходимо включить такое количество рулонов, чтобы их суммарная длина была не меньше запрошенной. При этом требуется, чтобы отклонение от заказанной длины было бы минимальным.

В случае если имеющийся запас товара недостаточен для удовлетворения запроса покупателя, то необходимо предусмотреть вывод соответствующего сообщения с указанием учетного остатка.

Пример

По данным учета текущие запасы товара "Рубероид РБ22" составляют:

Метраж рулона    Кол-во рулонов    Отпускная цена
27                                    12           270
45                                    11           450
60                                     0           600
22                                    17           220
47                                    9           470

Покупатель ООО "Фабрика грез" затребовал 260 м. товара "Рубероид РБ22".
На основании данного требования программа сформировала следующий счет.

Наименование    Метраж рулона    Кол-во рулонов    Метров    Сумма
Рубероид РБ22             27                           8                    216     2160

Рубероид РБ22             22                        2                     44        440

Итого        
    
Метров: 260
Сумма: 2600


Как реализовать данный алгоритм выборки нужно количества рулонов!?
Я пока придумал такой.

1. Выбираем наименьший метраж рулона.
    Это сделано для того, чтобы в случае когда невозможно подобрать нужное количество метров рубероида, разница была минимальной так-как берем рулоны с     наименьшим метражем. 
2. Сам алгоритм:

Строим некоторое подобие массива.

Массив 1:
22*1=22
22*2=44
22*3=66
22*4=88
22*5=110
22*6=132
22*7=154
22*8=176
22*9=198

Массив 2:
27*1=27
27*2=54
27*3=81
27*4=108
27*5=135
27*6=162
27*7=189
27*8=216
27*9=243
27*10=270
27*11=297
27*12=324

и т.д.

Теперь берем нулевой элемент первого массива и складываем его с нулевым элементом второго массива.
Если 260 не получилось идем далее, складываем нулевой элемент первого массива с первым элементом второго массива.
Если 260 не получилось идем далее...

Если поочередно при сложении нулевого элемента первого массива с элементами второго массива неполучилось 260 то проделываем те-же функции только с первым элементом первого массива:

Берем первый элемент первого массива и складываем его с нулевым элементом второго массива.
Если 260 не получилось идем далее, складываем первый элемент первого массива с первым элементом второго массива.
Если 260 не получилось идем далее...

В итого когда мы сложим первый элемент первого массива с восьмым элементом второго массива, то получим 260.

Недостаток метода  smile в том, что сравниваются только два метража рубероида.
Ну и сам метод конечно  smile 

У кого есть какие идеи!?

Это сообщение отредактировал(а) Deo - 15.4.2010, 08:53
PM MAIL   Вверх
Akina
Дата 15.4.2010, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Deo @  15.4.2010,  09:52 Найти цитируемый пост)
Как реализовать данный алгоритм выборки нужно количества рулонов!?
Я пока придумал такой.

Почитайте про "задачу о рюкзаке" и не изобретайте велосипедов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.1567 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.