Добрый день, подскажите, куда копать. Есть гриф штанги, весит 5 кг. Задача: определить диапазон весов штанги (гриф+диски). Должно выйти:
С помощью линейного программирования можно решить задачу, задав вопрос,
задан 19 Сен '14 1:33 manking |
1) Для чисел такого простого вида всё достаточно очевидно. Общий вес составляет $%5+10x+20y+30z=5+10(x+2y+3z)$%, где $%x$%, $%y$%, $%z$% -- переменные, принимающие значение 0 или 1 (0, если мы не берём диски данного типа, и 1, если берём). Понятно, что при таких условиях выражение $%x+2y+3z$% может принимать все целые значения от 0 до 6. При этом значение 3 можно получить двумя способами. Вес штанги при этом будет принимать значения 5, 15, 25, 35, 45, 55, 65 (40 не может быть -- там надо добавить гриф). Задачи такого вида при более сложных данных можно решать при помощи комбинаторных методов типа рассмотрения производящих функций. При этом перемножается несколько многочленов, и по коэффициентам можно определить, сколькими способами получается заданное число. Скажем, выражению $%x+2y+3z$% соответствовала бы п.ф. $%(1+t)(1+t^2)(1+t^3)=1+t+t^2+2t^3+t^4+t^5+t^6)$%. Если бы коэффициент при какой-то степени $%t^d$% была равен нулю, то это означало бы, что такое число из слагаемых не составить. А если коэффициент равен 2, то способов два. Правда, я не думаю, что для решения простых задач это уместно, если ручной перебор не представляет труда. 2) Здесь сначала надо чётко поставить математическую задачу. Если я правильно уловил идею, то там будут ограничения в виде неравенств. Типа того, что много толстых дисков не уместятся на грифе. Алгоритмы для решения таких задач есть всегда (чисто переборные), и при небольшом числе данных это всё быстро можно посчитать на компьютере. Вопрос же о том, как это всё себя повело бы при больших объёмах данных, надо анализировать отдельно. Этим занимается специальная теория, относящаяся к вычислительной сложности дискретных задач. отвечен 19 Сен '14 3:13 falcao |