Не то, что я знаю.
Идея обычного псевдополиномиального решения для подмножества суммы с маленькими целыми числами заключается в том, что, хотя существует очень большое количество комбинаций, существует относительно небольшое количество сумм, которые следует рассмотреть.Таким образом, я могу хранить, по сумме подмножеств, список последних индексов и значений, к которым мы пришли к этой сумме.Затем я могу найти свой целевой ответ и обойти структуру данных назад, чтобы создать список промежуточных сумм подмножеств и значений index +, которые находились на пути к окончательному целевому ответу.Это дает нам структуру данных, которая представляет собой конечный автомат для получения всех возможных ответов.Мы можем продвинуться вперед с помощью динамического программирования, чтобы получить либо один ответ, либо количество ответов, либо рекурсивно перечислить его, чтобы дать все ответы.(Зная, что все ответы обычно очень длинный список.)
Проблема с плавающей запятой состоит в том, что теперь существует очень большое количество подмножеств И очень большое количество промежуточных сумм.Этот трюк не работает.Вы можете округлять числа в ведра и давать приблизительные ответы, близкие к вашей цели.Но они будут приблизительными, и правильный ответ остается иголкой в стоге сена.
Извините.