Форум программистов, компьютерный форум, киберфорум
Комбинаторика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 20.03.2017
Сообщений: 91
1

Как выбрать кратность из перечисленных кратностей для заданной суммы?

24.12.2018, 21:19. Показов 2716. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ребята, добрый день, подскажите, пож-ста с алгоритмом. Ума не приложу.

Прошу помощи в вопросе.
Даны
кратности 30, 70, 90, 100 .
Сумма, которую вводит пользователь.

если пользователь введет 60 , то эта сумма не меняется.
если пользователь введет 45-> сумма 70
155->160(30+70+30+30)
150->150(90+30+30)

причем кратностей может быть много, не только 4, а более 5, 6, 7....

Найти быстрый алгоритм, позволяющий округлять в большую сторону.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2018, 21:19
Ответы с готовыми решениями:

Какие выбрать комплектующие из перечисленных?
Добрый вечер. Собираю пк до 80 т.р. максимум. Город Новосибирск, если важно. Ниже приведу список...

Проверка суммы на кратность ценам товара
Здравствуйте, не могу понять, в какую сторону копать. Дано. === 1. Список товара, каждый товар...

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

Составить процедуру (или функцию) для вычисления суммы десятичных цифр некоторого числа N. Для заданной
Составить процедуру (или функцию) для вычисления суммы десятичных цифр некоторого числа N. Для...

15
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 00:00 2
Ребята, добрый день, Ума не приложу. Прошу помощи в вопросе. Ну и как это все понять?

Не по теме:

Я учился у Ванги. Был на хорошем счету. Подавал надежды. Но тут я понял, что я - фуфло. И ничему меня не научили. Только даром тратили время.

1
Эксперт по математике/физике
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
25.12.2018, 00:12 3
kframv, что такое "кратность" в вашем понимании? Кратность чего? Есть выражение "70 кратно 7", то есть 70 делится на 7 без остатка. А у вас?
Цитата Сообщение от kframv Посмотреть сообщение
если пользователь введет 45-> сумма 70
По какому принципу из 45 получается 70? Точно, что бабы Ванги не хватает здесь.
0
0 / 0 / 0
Регистрация: 20.03.2017
Сообщений: 91
25.12.2018, 05:06  [ТС] 4
Дано коробка-30шт - 2 упаковки, коробка-70 шт- 3 упаковки, коробка 90-1 упаковка, коробка 100- 8 упаковок
Есть поле инпут, в которое вводит пользователь некую сумму.

мне нужно, чтобы клиент смог сделать
- если пользователь ввел 60, то надо набрать СУММУ кратностей равную 60 (2 коробки по 30)
- если пользователь ввел 45, то надо набрать СУММУ кратностей равную 70 (1 коробка по 70, потому что в приоритет ставится дать меньшее число монет)
- если пользователь ввел 155, то надо набрать СУММУ кратностей равную 160 (4 коробки 30 70 30 30, или если числом монет то надо дать 2 коробки 90 и 70)

Клиент может заказать кол-во товаров превышающее наличие (30*2+70*3+90+8*100=1160). но тогда будет под заказ. Мне главное, чтобы запретить клиенту заказать 5 позиции- можно заказать только 30.

Добавлено через 4 минуты
Цитата Сообщение от jogano Посмотреть сообщение
По какому принципу из 45 получается 70
по принципу того, что нельзя заказать 45 шт, если заданы кратности коробки в 70шт, в 30шт, в 90шт, в 100шт.
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
25.12.2018, 07:39 5
Цитата Сообщение от kframv Посмотреть сообщение
1 коробка по 70, потому что в приоритет ставится дать меньшее число монет
Цитата Сообщение от kframv Посмотреть сообщение
4 коробки 30 70 30 30, или если числом монет то надо дать 2 коробки 90 и 70
Цитата Сообщение от kframv Посмотреть сообщение
Клиент может заказать кол-во товаров превышающее наличие (30*2+70*3+90+8*100=1160). но тогда будет под заказ.
Цитата Сообщение от kframv Посмотреть сообщение
нельзя заказать 45 шт, если заданы кратности коробки в 70шт, в 30шт, в 90шт, в 100шт.
А вот только что можно было,
Цитата Сообщение от kframv Посмотреть сообщение
потому что в приоритет ставится дать меньшее число монет
Байт, kframv, да это полный пушной зверек живущий на севере.
0
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 12:55 6
Все-таки не хотелось бы подводить своих учителей...
Попробуем поставить задачу так.
Есть некий штучный товар. Скажем, презервативы. Они упакованы в коробки по 30, 70, 90, 100 штук.
Клиент заказывает N презервативов. Но продавец не хочет коробки вскрывать. Найти наименьшее число K, большее или равное N, удовлетворяющее запрос покупателя, которое можно составить, не вскрывая коробок. И указать набор коробок. Если число K можно получить несколькими способами, указать тот, в котором число коробок минимально.
Так? Похоже?
0
Эксперт по математике/физике
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
25.12.2018, 13:32 7
Байт, и ещё одна проблема в критерии: можно получить количество презиков немного больше нужного, но большим числом коробок, либо сильно больше нужного, но малым числом коробок. В посте #1 kframv для заказа 150 шт. товара использовал набор коробок 90+30+30 (3 коробки), но набор 90+70 даёт бОльшую сумму товара, но меньше коробок. Вопрос к ТС. Например, был бы заказ 145 шт., что выбрать: 90+30+30 или 90+70 и почему?
0
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 13:46 8
jogano, да, это уже многокритериальная задача, а их, как правило, трудновато решить без сведения к одному критерию....
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
25.12.2018, 14:09 9
Байт, с таким объектом сразу все понятно становится.
У меня в представлении что то напоминающее было, но введение объекта "количество монет" меня добило окончательно.

Вот вариант решения с помощью функции "Поиск решения" в EXCEL. Число вариантов "коробок" специально сделал чуть больше (как где-то упоминалось ТС).
Задача строится как поиск оптимума по штрафной функции. Конечно штрафную функцию возможно надо подстроить с учетом замечаний jogano.
Вот собственно файл
Вложения
Тип файла: xlsx Коробки.xlsx (9.3 Кб, 1 просмотров)
1
0 / 0 / 0
Регистрация: 20.03.2017
Сообщений: 91
25.12.2018, 21:35  [ТС] 10
Цитата Сообщение от jogano Посмотреть сообщение
Вопрос к ТС. Например, был бы заказ 145 шт., что выбрать: 90+30+30 или 90+70 и почему?
все зависит от наличия на складе.
Пример ниже.
Цитата Сообщение от Байт Посмотреть сообщение
Если число K можно получить несколькими способами, указать тот, в котором число коробок минимально.
Так? Похоже?
все выбирается наугад, в зависимости от наличия на складе

Есть магазин-инет, открываем карточку товара.
По данному артикулу этого товара мы продаем коробки :
а)в упаковке -20шт, -кратность 20 (кол-во коробок=4)
б)в упаковке -50шт,-кратность 50 (кол-во коробок=2)
в)в упаковке -90шт.-кратность 90 (кол-во коробок=1)
всего у нас шт-(20*4+50*2+90=270шт)
в поле ввода количества по умолчанию стоит 20шт(найменьшая кратность), если мы нажмем клавишу вверх( то увеливываем на 20 в поле-инпут станет40)

если мы поменяем значение в самом поле, то должен стоять алгоритм
если мы введем 50 или 90, то система ничего не меняет.
если мы введем 45 то система в поле инпут должна поменять на 50.
если мы введем 70 , то система должна вывести окно (ты можешь взять 70, но коробки 20 и 50)- ставим галочки
если мы введем 290 шт- система выведет (коробка 20шт-4, коробка 50шт-2, коробка 90шт -1) + заказ 20шт -ставим галки
и заказываем в корзину.
0
Байт
25.12.2018, 22:05
  #11

Не по теме:

Однако, учителей своих я подвел. Как был дураком и неумехой, так и остался. Простите меня, люди добрые, но я все равно понять не в силах ни-че-го

0
Эксперт по математике/физике
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
25.12.2018, 22:33 12
Цитата Сообщение от kframv Посмотреть сообщение
в поле ввода количества по умолчанию стоит 20шт(найменьшая кратность), если мы нажмем клавишу вверх( то увеливываем на 20 в поле-инпут станет40)
если мы поменяем значение в самом поле, то должен стоять алгоритм

Не по теме:

Я не могу так ... , аналитический мозг не способен без поллитры разобраться :)

0
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 22:36 13

Не по теме:

Цитата Сообщение от jogano Посмотреть сообщение
аналитический мозг не способен без поллитры разобраться
А и не надо себе ни в чем отказывать. Разберемся!

0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
26.12.2018, 11:14 14
Попытаюсь угадать еще раз.
Вот код на MATLAB, который определяет возможный набор количества из набора коробок, и количество коробок для реализации данного набора.
Кликните здесь для просмотра всего текста
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
function rrr
close all;clear all; clc;
R=[20 50 90]; % Размер упаковки
K=[4 2 1];  % Количество упаковок на складе
if length(R)~=length(K)
    disp('Ошибка! Несоответствие размерностей массивов');
    return;
end
 
[Rez, RezK]=RunRec(R, K, 1, 0, [], [])
[Rez2, ia,~]=unique(Rez);
Rez2
RezK2=RezK(:,ia)
end
 
function [Rez, RezK]=RunRec(R, K, nU, M, RezK, RezK1)
n=length(R);
Rez=[];
if nU==1
    RezK1=zeros(n,1);
end
for ii=0:K(nU)
    Mii=M+R(nU)*ii;
    if nU<n
        RezK1(nU)=ii;
        [Rez0, RezK]=RunRec(R, K, nU+1, Mii, RezK, RezK1);
        Rez=[Rez Rez0];
    else
        Rez=[Rez Mii];
        RezK1(nU)=ii;
        RezK=[RezK RezK1];
    end
end
end


Вот такой результат он выдает, на основе данных из сообщения №10

0 20 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 250 270

0 1 2 0 3 1 4 2 0 3 1 4 2 3 3 4 4 0 3 1 4 2 3 4
0 0 0 1 0 1 0 1 2 1 2 1 2 0 2 0 2 2 1 2 1 2 2 2
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 1 1 1 1

Добавлено через 11 минут
Да, забыл написать очередное придумывание вместо ТС задачи.
На складе имеется некоторый товар (штучный) упакованный в коробки разной вместимости, причем в текущий момент на складе в наличии только определенное количество коробок каждого вида.
Некий ЗАКАЗЧИК собирается сделать заказ, но тк коробки продаются только целиком ни в коем случае не вскрываясь (а то Байт придумал их тут вилами разгружать ), поэтому произвольное количество штук ЗАКАЗЧИК купить не может, а только количество кратное объему коробок.
Вот ТС и предлагает помочь ЗАКАЗЧИКУ с выбором, и на форме заказа иметь например ComBox с заполненными возможными для поставки количествами товара, и ЗАКАЗЧИК выберет из этого уже ограниченного перечня. Одновременно надо знать, а сколько каких коробок надо отправлять, чтобы выполнить заказ.

PS Ежели я угадал формулировку задачи, так искусно зашифрованную ТС, то прошу мне выдать ОРДЕН имени ВАНГИ
1
Диссидент
Эксперт C
27709 / 17325 / 3811
Регистрация: 24.12.2010
Сообщений: 38,979
26.12.2018, 11:51 15
Цитата Сообщение от SSC Посмотреть сообщение
прошу мне выдать ОРДЕН имени ВАНГИ
Непременно, непременно... Похлопочем перед администрацией за учреждение. а как только, так я первый же вас и рекомендую.
Но и вам придется принять участие, а не сидеть сложа руки. Эскизик бы... Если сами не могете (лично я вообще могу поспорить за качество рисунка только с куриной лапой) - можно попросить кого-то. Тут у нас на форуме есть такие умельцы...
А название само напрашивается. "Экстрасекс Форума"
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
26.12.2018, 12:04 16
Цитата Сообщение от Байт Посмотреть сообщение
Эскизик бы...
Надо подумать
0
26.12.2018, 12:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2018, 12:04
Помогаю со студенческими работами здесь

Подбор значений для заданной суммы
Здравствуйте.Одна надежда на Ваш форум.Нужен макрос для следующей задачи.В диапазоне (В2:В10) -...

Программа для вычисления суммы чисел по заданной формуле
Помогите пожалуйста написать программу для расчета Задано натуральное n. Вычислить сумму: ...

Разработать программу для вычисления суммы с заданной точностью
1. Разработать программу для вычисления суммы с заданной точностью (Табл. 1.) Получить результат.

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru