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

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

24.12.2018, 21:19. Показов 2756. Ответов 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
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.12.2018, 21:19
Ответы с готовыми решениями:

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

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

Как примерно должна выглядеть программа для нахождения суммы первых n членов заданной последовательности?
как примерно должна выглядеть программа для нахождения суммы первых n членов последовательности (k=1,2,3,...,n), организовав рекрусивную...

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

Не по теме:

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

1
Эксперт по математике/физике
 Аватар для jogano
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
25.12.2018, 00:12
kframv, что такое "кратность" в вашем понимании? Кратность чего? Есть выражение "70 кратно 7", то есть 70 делится на 7 без остатка. А у вас?
Цитата Сообщение от kframv Посмотреть сообщение
если пользователь введет 45-> сумма 70
По какому принципу из 45 получается 70? Точно, что бабы Ванги не хватает здесь.
0
0 / 0 / 0
Регистрация: 20.03.2017
Сообщений: 91
25.12.2018, 05:06  [ТС]
Дано коробка-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
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
25.12.2018, 07:39
Цитата Сообщение от 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
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 12:55
Все-таки не хотелось бы подводить своих учителей...
Попробуем поставить задачу так.
Есть некий штучный товар. Скажем, презервативы. Они упакованы в коробки по 30, 70, 90, 100 штук.
Клиент заказывает N презервативов. Но продавец не хочет коробки вскрывать. Найти наименьшее число K, большее или равное N, удовлетворяющее запрос покупателя, которое можно составить, не вскрывая коробок. И указать набор коробок. Если число K можно получить несколькими способами, указать тот, в котором число коробок минимально.
Так? Похоже?
0
Эксперт по математике/физике
 Аватар для jogano
6358 / 4065 / 1512
Регистрация: 09.10.2009
Сообщений: 7,550
Записей в блоге: 4
25.12.2018, 13:32
Байт, и ещё одна проблема в критерии: можно получить количество презиков немного больше нужного, но большим числом коробок, либо сильно больше нужного, но малым числом коробок. В посте #1 kframv для заказа 150 шт. товара использовал набор коробок 90+30+30 (3 коробки), но набор 90+70 даёт бОльшую сумму товара, но меньше коробок. Вопрос к ТС. Например, был бы заказ 145 шт., что выбрать: 90+30+30 или 90+70 и почему?
0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 13:46
jogano, да, это уже многокритериальная задача, а их, как правило, трудновато решить без сведения к одному критерию....
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
25.12.2018, 14:09
Байт, с таким объектом сразу все понятно становится.
У меня в представлении что то напоминающее было, но введение объекта "количество монет" меня добило окончательно.

Вот вариант решения с помощью функции "Поиск решения" в EXCEL. Число вариантов "коробок" специально сделал чуть больше (как где-то упоминалось ТС).
Задача строится как поиск оптимума по штрафной функции. Конечно штрафную функцию возможно надо подстроить с учетом замечаний jogano.
Вот собственно файл
Вложения
Тип файла: xlsx Коробки.xlsx (9.3 Кб, 1 просмотров)
1
0 / 0 / 0
Регистрация: 20.03.2017
Сообщений: 91
25.12.2018, 21:35  [ТС]
Цитата Сообщение от 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

Не по теме:

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

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

Не по теме:

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

0
Диссидент
Эксперт C
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
25.12.2018, 22:36

Не по теме:

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

0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
26.12.2018, 11: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
 Аватар для Байт
27710 / 17328 / 3810
Регистрация: 24.12.2010
Сообщений: 38,979
26.12.2018, 11:51
Цитата Сообщение от SSC Посмотреть сообщение
прошу мне выдать ОРДЕН имени ВАНГИ
Непременно, непременно... Похлопочем перед администрацией за учреждение. а как только, так я первый же вас и рекомендую.
Но и вам придется принять участие, а не сидеть сложа руки. Эскизик бы... Если сами не могете (лично я вообще могу поспорить за качество рисунка только с куриной лапой) - можно попросить кого-то. Тут у нас на форуме есть такие умельцы...
А название само напрашивается. "Экстрасекс Форума"
0
Эксперт по математике/физике
 Аватар для SSC
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
26.12.2018, 12:04
Цитата Сообщение от Байт Посмотреть сообщение
Эскизик бы...
Надо подумать
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.12.2018, 12:04
Помогаю со студенческими работами здесь

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

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

Программа для вычисления суммы чисел по заданной формуле
Помогите пожалуйста написать программу для расчета Задано натуральное n. Вычислить сумму: формула: 1/(K^2)! где K задано...

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

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


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер