Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 02.12.2023
Сообщений: 80

Как купить носки с выгодой

03.12.2023, 19:29. Показов 2646. Ответов 33

Студворк — интернет-сервис помощи студентам
Пара носков стоит 10 руб. 50 коп., связка (12 пар) стоит 102 руб. 50 коп., а коробка (12 связок) стоит 1140 руб.

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

Входной файл INPUT.TXT содержит натуральное число N (N ≤ 109) – число пар носков, которые желает купить покупатель.

Выходной файл OUTPUT.TXT должен содержать три числа (первое – количество коробок, второе – связок, третье – пар носков), разделенные пробелами.

Примеры
11
0 1 0

500
3 5 8
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2023, 19:29
Ответы с готовыми решениями:

как заставить мужчину убирать грязные носки?
Встречный вопрос: как заставить мужчину убирать грязные носки? :D

Замерить толщину покрытия стола носками
Задание с одного сайта по дистанционному обучению. Помогите разобраться, что именно тут нужно делать. Не могу понять саму суть задачи.. ...

Замерить толщину покрытия стола носками
Носки Имеется стол длины L . На столе разложено N носков так, что никакой носок не вылезает за границы стола. Далее имеется умный...

33
Вирусоборец
 Аватар для thyrex
14471 / 7510 / 1584
Регистрация: 06.09.2009
Сообщений: 27,194
04.12.2023, 00:18
Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
5
6
7
8
9
10
11
n = int(input())
n3 = n//144
ost = n%144
n2, n1 = ost//12, ost%12
if n1 and n1*105 >= 1025:
    n2 += 1
    n1 = 0
if n2*1025 + n1*105 >= 11400:
    n3 += 1
    n2 = n1 = 0
print(n3, n2, n1)
1
3750 / 1944 / 613
Регистрация: 21.11.2021
Сообщений: 3,706
04.12.2023, 01:29
Мой вариант:
Python
1
2
3
4
5
n = int(input('n = '))
arr = [n//144, n%144//12, n%12]
vars = [(arr[0]+1,0,0), (arr[0],arr[1]+1,0), arr]
mi = min(vars, key=lambda x: x[0]*1140 + x[1]*102.5 + x[2]*10.5)
print(*mi)
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.12.2023, 09:35
Цитата Сообщение от Royal_X Посмотреть сообщение
но косвенно их учитывает
косвенно - это да.
Вопрос в том, откуда в Вашем коде берутся магические числа (10, 134)?

Python
1
2
3
4
5
6
7
8
9
10
11
12
n = int(input())
a,b,c = 10.5,102.5,1140
x, o1 = divmod(n, 144)
y, o2 = divmod(o1, 12)
z = o2
if z*a >= b:
    y += 1
    z = 0
if y*b+z*a >= c:
    x += 1
    y,z = 0,0
print(x,y,z)
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,676
04.12.2023, 11:47
Цитата Сообщение от YuS_2 Посмотреть сообщение
Вопрос в том, откуда в Вашем коде берутся магические числа (10, 134)?
Почему именно 134?
Если осталось 134 - 143 пар (144 и больше не может быть из-за целочисленного деления на 144)
Для 133 и меньше выгоднее брать связки и отдельные пары.
Например, пусть осталось 133
Берем 11 связок и 1 отдельную пару = 11 * 102,50 + 10,5 = 1138 < 1140 (т.е. так дешевле одной коробки)
Но вот начиная со 134, то лучше брать коробку:
Ведь, допустим осталось 134, и взяли 11 связок и 2 пары:
11 * 102,50 + 2 * 10,5 = 1148,5 > 1140 (коробка дешевле)
Брать 12 связок тоже не вариант:
12 * 102,50 = 1230 > 1140 (коробка дешевле)
Почему именно 10?
Если остаётся 10 и больше пар носков, то берем связку.
Потому, что если решить неравенство 10,5 * x >= 102,5, где x это положительное целое число, то получим x >= 10
Это говорит о том, что если остается 1 - 9 пар, то лучше брать отдельные пары. Но если осталось 10-11 пар (12 и больше быть не может т.к. до этого было целочисленное деление на 12), то дешевле брать связку.
Допустим осталось 10 пар:
10 * 10,5 = 105 > 102,5 (выгоднее брать связку)
9 * 10,5 = 94,5 < 102,5 (выгоднее брать 9 отдельных пар)
Кстати, 134 это еще 144 (количество пар в коробке) - 10.

Поэтому я выше писал, что тут нет подбора, все рассчитывается математически и стоимости учитываются при выведении этих 10 и 134. Я, конечно, неравенства начальных классов для нахождения этих чисел не решал, а прикинул в голове, но все это имеет математическое решение.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.12.2023, 12:36
Цитата Сообщение от Royal_X Посмотреть сообщение
Поэтому я выше писал, что тут нет подбора, все рассчитывается математически

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

12, 144 - оговорены в условии, (связка, коробка), но (10,134) - это ведь необходимо вычислять...
1
Вирусоборец
 Аватар для thyrex
14471 / 7510 / 1584
Регистрация: 06.09.2009
Сообщений: 27,194
04.12.2023, 16:15
О чем я и говорил с самого начала. Стоит изменить стоимости и... считай заново
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,676
04.12.2023, 16:29
thyrex, по условию задачи стоимости не вводятся, только число пар носков. Соответственно, ваш аргумент "стоит изменить стоимости и считай заново" абсолютно ни о чём. Я писал код конкретно к этой задаче и не ставил никаких целей написать код, который можно легко переделать для других задач.
0
Вирусоборец
 Аватар для thyrex
14471 / 7510 / 1584
Регистрация: 06.09.2009
Сообщений: 27,194
04.12.2023, 16:35
Стоимость дана в условии! Она используется и в моем алгоритме, и в алгоритме YuS_2. И никаких вычислений допустимых остатков пар носков на бумаге не требуется при переходе к более крупным партиям.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,676
04.12.2023, 17:22
thyrex, стоимость учитывается и в моем алгоритме, иначе он бы не работал. Вычислений на бумаге я не делал, только в уме, а код написан на заборе) А вот для решения более сложных задач, я согласен с вами, что придется сменить алгоритм. Вот только вопрос в том, почему в теме по конкретной задаче я должен волноваться о гипотетических сложных задачах, которые могут быть опубликованы на этом форуме потенциальными ТС?
0
Вирусоборец
 Аватар для thyrex
14471 / 7510 / 1584
Регистрация: 06.09.2009
Сообщений: 27,194
04.12.2023, 19:03
Royal_X, не увидел расчета стоимости в Вашей программе. Сообщение с выкладками, почему такие границы, - это никак не программа.

На этом предлагаю прения прекратить, ибо они больше напоминают разговор слепого с глухим.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.12.2023, 19:12
Цитата Сообщение от Royal_X Посмотреть сообщение
стоимость учитывается и в моем алгоритме
проблема в том, что у Вас учитывается не стоимость, а граничное количество, вычисленное "в уме" с привязкой к конкретной стоимости.
Такой подход вообще, использовать в программировании накладно, с учетом того, что:
Например, в торговле, стоимость изменяется часто... и из практических целей задачи, можно ведь просто изменить стоимость, например, для другого товара или для товара из другой поставки, и в этом случае никаких границ количества, вычислять заново (как в Вашем варианте), уже не придется.

Цитата Сообщение от Royal_X Посмотреть сообщение
почему в теме по конкретной задаче я должен волноваться о гипотетических сложных задачах
Да разве в конкретной задаче дело? Ведь на решении простеньких задач вырабатывается привычка/навык к правильному использованию алгоритмов...
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,676
04.12.2023, 19:43
Цитата Сообщение от thyrex Посмотреть сообщение
не увидел расчета стоимости в Вашей программе.
а я разве говорил, что в моей программе есть расчет стоимости?

вы написали
Цитата Сообщение от thyrex Посмотреть сообщение
Стоимость дана в условии! Она используется и в моем алгоритме, и в алгоритме YuS_2.
а я ответил
Цитата Сообщение от Royal_X Посмотреть сообщение
Стоимости были учтены во время разработки алгоритма.
Цитата Сообщение от Royal_X Посмотреть сообщение
стоимость учитывается и в моем алгоритме, иначе он бы не работал.
Уважаемый, вы отличаете, что есть алгоритм, а что программа?

Цитата Сообщение от thyrex Посмотреть сообщение
На этом предлагаю прения прекратить, ибо они больше напоминают разговор слепого с глухим.
Давно надо было. Я с самого начала не понимаю, к чему эти выпады? Мой код работает и выполняет задачу, условие которой написано в данной теме. Выше я уже писал, что когда будет другая задача, то напишу другой код. Но критику, что будет сложно переделать мой код, если поменяется условие, и из-за этого он плох, я не воспринимаю и не собираюсь воспринимать. У меня не было целей писать универсальный код. ТС просил решения по конкретной задаче, я написал, а его устроило. На этом всего вам доброго.

Добавлено через 24 минуты
Цитата Сообщение от YuS_2 Посмотреть сообщение
проблема в том, что у Вас учитывается не стоимость, а граничное количество, вычисленное "в уме" с привязкой к конкретной стоимости.
Нет, учитывается именно стоимость. Граничное количество выводится путем решения неравенств и прочих математических вычислений, в которых прямо вовлечены эти стоимости. А вычислять простенькие неравенства в уме, на бумаге, на калькуляторе или впихивать в код, это уже дело вкуса.
Цитата Сообщение от YuS_2 Посмотреть сообщение
Например, в торговле, стоимость изменяется часто... и из практических целей задачи, можно ведь просто изменить стоимость, например, для другого товара или для товара из другой поставки, и в этом случае никаких границ количества, вычислять заново (как в Вашем варианте), уже не придется.
Я совершенно вас понимаю и вы правы, что мой код не годится для других задач. Но я и не имел таких целей при написании кода, я лишь писал под конкретную задачу.
Цитата Сообщение от YuS_2 Посмотреть сообщение
Да разве в конкретной задаче дело? Ведь на решении простеньких задач вырабатывается привычка/навык к правильному использованию алгоритмов...
Простенькие задачи решает ТС, мне они ни к чему. Да, мой код для ТС имеет ноль дидактической ценности. Но я быстренько накинул этот код только для того, чтобы сайт смог принять как ответ. Согласен, это не самый лучший код, на котором можно изучать алгоритмы.

Тем не менее, мне не понятны эти резкие выпады. Считаете, что мой код сложен для восприятия, или что он не годится для каких-то других задач, то молча публикуйте свои коды.
0
Любознательный
 Аватар для YuS_2
7407 / 2260 / 361
Регистрация: 10.03.2016
Сообщений: 5,216
04.12.2023, 19:57
Цитата Сообщение от Royal_X Посмотреть сообщение
мне не понятны эти резкие выпады
Да где же там резкость и уж тем более выпады? Их совсем нет..

Цитата Сообщение от Royal_X Посмотреть сообщение
Считаете, что мой код сложен для восприятия, или что он не годится для каких-то других задач, то молча публикуйте свои коды.
А вот это, уже будет не в духе питона...
В общем-то, pep20:
Явное лучше, чем неявное.
...
При этом практичность важнее безупречности.
Ошибки никогда не должны замалчиваться.
Если они не замалчиваются явно.
такшта... не удивляйтесь такому пристальному вниманию...
Ведь, не ради того, чтобы как-то уязвить Вас, всё это пишем... исключительно, истины ради и для тех кому интересно учиться.
0
Нарушитель
Эксперт функциональных языков программированияЭксперт С++
6329 / 3057 / 1054
Регистрация: 01.06.2021
Сообщений: 11,676
04.12.2023, 20:11
YuS_2, если честно, когда писал этот код, был очень занят и не было желания вникать детально в задачу. Написал на заборе что-то, чтобы быстро удовлетворить сайт ТС, который проверяет код.
На этом сайте никто никому ничего не должен. Люди на бесплатной основе вносят свой вклад с учетом свободного времени, желания и возможностей. Думаю, не очень хорошо придираться к ответам других и требовать поднять стиль алгоритма до неких условных стандартов. Ведь, мне они ни к чему, я-то, в отличие от ТС, при желании могу писать код comme il faut. Всякие ошибки и недочеты еще можно указывать. Ведь публиковать что-попало тоже нехорошо. Даже в этой теме я к ним нормально отнесся, несмотря на то, что я предупреждал, что не гарантирую работоспособность кода, а это просто как идея.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.12.2023, 20:11

Носки задача по программированию
Носки Имеется стол длины L . На столе разложено N носков так, что никакой носок не вылезает за границы стола. Далее имеется умный...

Олимпиада (носки и шахматы)
Два интересных, но сложных для меня задания. 1. В одной военной части было принято революционное решение перейти от портянок к носкам....

Решить сортировкой задачу про носки
Задача №1429. Носки Имеется стол длины L. На столе разложено N носков так, что никакой носок не вылезает за границы стола. Далее имеется...

Нужно ли под кроссовки обувать носки?
Всем доброго времени суток. Так получилось, что я остановил свой выбор на кроссовках и джинсах. Хоть и надеваю каждый день чистые...

Выделить цветом окончание срока носки спецодежды
Прошу Вашей помощи, необходимо выделить цветом окончание срока носки спец одежды, но сроки на разную спецодежду разные(футболка 1 год,...


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru