Мне сложно понять, как объяснить эту проблему. В настоящее время я пытаюсь создать программу для дополнительного кредита в своем классе программирования, но я даже не понимаю математику за ней ... Поэтому я бы очень хотел, чтобы кто-то мог мне помочь. Хорошо:Изменение монеты - максимальное количество поиска
Скажите, что у вас есть монета в 1 цент и монета в 4 цента. И общее количество разрешенных монет равно 4. Максимальное покрытие составляет 11. График ниже.
Value | 1 cent | 4 cent
1 | 1
2 | 2
3 | 3
4 | 4
5 | 1 | 1
6 | 2 | 1
7 | 3 | 1
8 | | 2
9 | 1 | 2
10 | 2 | 2
11 | Maximum
S0 это пример. Мне нужно сделать это для чего-то большего. Но я хотел бы, чтобы кто-то помог мне объяснить математику. Или что такое уравнение ... Это сводит меня с ума.
Я пытался реализовать версию алгоритма ранца, но, похоже, это не трюк. Если кто-то может помочь, это будет очень признательно. Я не уверен, могу ли я это сделать или мне нужно использовать жадный алгоритм для этого решения. Это в основном поворот в жадном алгоритме.
EDIT: изменен на 11
Показать код. –
Что вы подразумеваете под «максимальным покрытием»? И как вы получаете номер 13? Дается ли это? –
Простите, я имел в виду 11. Это была опечатка. Я только что исправил это. Хорошо, Ajmartin ниже предложил взглянуть на понимание динамического программирования, поэтому я в настоящее время смотрю на это. Таким образом, это в основном непрерывное число, пока оно не достигнет нуля.В качестве кода я искал попытку сделать в основном деление значения V на самую большую монету, которую у вас есть в вашем массиве D [], затем добавив, что многие из D [i] относятся к вашему массиву, который содержит монеты, которые вы используете для достижения значение , а затем просто перейти к следующему наименованию в D [] и повторить операцию до тех пор, пока остальная часть деления не будет 0 – Bob