Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.02.2011, 07:33   #1
Двоешник
Пользователь
 
Регистрация: 04.01.2011
Сообщений: 10
По умолчанию Проблема с лабораторной

Здравствуйте! Помогите мне пожалуйста с лабораторной работой за тот семестр=) По теории принятия решений=) Вообщем суть лабораторной - написать программу, можно на С, можно на С++, вообщем лишь бы она работала, даже на паскале можно=) Так вот задание следующее, Динамическое программирование, Покупатель имеет купюры достоинством A(1), ...,A(n), а продавец - B(1), .. ,B(m). Необходимо найти максимальную стоимость товара Р, которую покупатель не может купить, потому что нет возможности точно рассчитаться за этот товар с продавцом, хотя денег на покупку этого товара достаточно. Помогите пожалуйста=) Напишите желательно на Паскале, так проще=)
Двоешник вне форума Ответить с цитированием
Старый 24.02.2011, 16:26   #2
dial595
 
Регистрация: 17.02.2011
Сообщений: 3
По умолчанию

471-391-856
Пиши обсудим)) Буду рад помочь, тока я на C пишу))
dial595 вне форума Ответить с цитированием
Старый 24.02.2011, 17:39   #3
Анастасия18
Пользователь
 
Регистрация: 13.02.2011
Сообщений: 16
По умолчанию

Если покупатель отдаст все свои купюры продавцу, то понятно, что для решения исходной задачи размер минимальной сдачи, которую продавец не может вернуть, используя любые имеющиеся теперь у него купюры C[i] (его и покупателя). Для этого удобно отсортировать купюры согласно их достоинства в порядке неубывания. Предположим, что продавец может вернуть любую сдачу от 1 до S, используя только меньшие i купюр. Для следующей (i+1)-ой купюры достоинства C[i+1] возможны 2 ситуации. 1. C[i+1]<S+2. Тогда понятно, что продавец может вернуть любую сдачу от 1 до C[i+1]+S, т.к. любая из этих сумм представима либо первыми i купюрами, либо (i+1)-ой купюрой вместе с некоторыми из первых i купюр. 2. C[i+1]>S+1. Тогда понятно, что продавец не может вернуть сдачу S+1. Опишем процедуру вычисления S. S:=0; i:=1; пока (i<=N) и (C[i]<=S+1) нц S:=S+C[i]; i:=i+1 кц Если значение S не меньше суммарного количества денег покупателя, то покупатель может купить товар любой доступной ему стоимости, точно рассчитавшись за покупку. Иначе P=A[1]+...+A[N]-S.
Почитай, может поможет!
Анастасия18 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с лабораторной=) Двоешник Помощь студентам 8 16.02.2011 13:07
Решение лабораторной Student.Tekst Фриланс 2 28.01.2011 09:18
Исправление лабораторной) Sudeki Помощь студентам 0 08.12.2009 22:02
Помогите с лабораторной SunLedi Общие вопросы C/C++ 3 29.10.2009 23:10