как упростить это уравнение - PullRequest
0 голосов
/ 12 апреля 2020

Проблема: для числа от 0 до 6 комбинация из 4, 2, 1 будет равна данному числу. Число можно использовать только один раз (нельзя просто сделать 1 для 6 раз, чтобы получить заданное число 6).

Examples:
Value = 6
4 = 1
2 = 1
1 = 0

Value = 4
4 = 1
2 = 0
1 = 0

Value = 3
4 = 0
2 = 1
1 = 1

Current forumlas, where given number is 6:
4 = Floor(6/4)
2 = Floor(6%4)/2
1 = Floor[(6%4)%2]/1

Учитывая, что это шаблон, как бы я упростил свои формулы? У этого шаблона есть какое-то конкретное имя?

1 Ответ

0 голосов
/ 12 апреля 2020

Вы можете следовать жадному подходу. Начните вычитать самый большой элемент в списке (4-2-1 здесь), который также меньше, чем число, которое вы хотите разложить из вашего числа, и повторяйте, пока не достигнете 0.

...