Pull to refresh

Comments 23

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

Согласен. @ТС, я думаю много кто топит вашу статью из-за такого маленького косячка

Знаменитая задача с монетами, это когда надо за несколько взвешиваний определить фальшивую.
UFO just landed and posted this here
Советская система 1,2,3,5 — не каноническая?
UFO just landed and posted this here
UFO just landed and posted this here
Пойду поищу точное определение канонической системы.

Будете удивлены. Каноническая монетная система — это такая, для которой жадный алгоритм дает оптимальное решение задачи размена для любого целого числа.

UFO just landed and posted this here
Обычная динамика по таблице даёт O(kn), не нужно мемоизации, где k — число номиналов, n — сумма

Не знал, что для динамики есть еще одно слово.

Мемоизация — не то же самое, что динамика.

вторая – это количество разрядов числа, представляющего сдачу.

обычный инт64 и цена мл. разряда = минимальной монете и никаких проблем.

Это, в каком то смысле, переоткрытие приближенного решения задаче о рюкзаке с помощью динамического программирования.

UFO just landed and posted this here
UFO just landed and posted this here
Под С я понимаю сумму. Т.е. сложность, как вы справедливо заметили выше: «Сложность Вашего алгоритма — как минимум Ω(n^2). Самый худший для Вас вариант — это когда все номиналы — простые числа. » Только «как максимум»
И да, это вариация динамического программирования. Если для каждой точки запоминать результат, решение будет оптимальным.
По ссыске на github есть исходники. Или напишите здесь исходные данные — рассчитаю.

Я к тому, что предлагается поверить что реализация верная.

Sign up to leave a comment.

Articles