Если вам нужно решение для небольшого числа возможных
package_numbers
, но, возможно, очень большого
remaining_order,
, и в этом случае все другие решения потерпят неудачу, вы можете используйте это для уменьшения оставшегося порядка:
import numpy as np
remaining_order = 13
package_numbers = [9,5,3]
required_packages = []
sub_max=np.sum([(np.product(package_numbers)/i-1)*i for i in package_numbers])
while remaining_order > sub_max:
remaining_order -= np.product(package_numbers)
required_packages.append([max(package_numbers)]*np.product(package_numbers)/max(package_numbers))
Потому что, если какой-либо пакет находится в обязательных пакетах чаще, чем (np.product (package_numbers) / i-1) * i, то его сумма равна np.product (package_numbers) , В случае, если пакет max (package_numbers) отличается от самого дешевого за единицу, возьмите пакет с наименьшей ценой за единицу.
Пример:
remaining_order = 100
package_numbers = [5,3]
Любая часть оставшегося_заказа больше 5 * 2 плюс 3 * 4 = 22 может быть отсортирована путем добавления 5 к решению трижды и принятия оставшегося_заказа - 5 * 3. Таким образом, оставшийся порядок, который фактически должен быть рассчитан, равен 10. Который затем может быть решен, чтобы быть 2 раза 5. Остальные заполнены 6 раз 15, что 18 раз 5.
В случае, если число возможных номеров_пакетов больше, чем просто горстка, я рекомендую создать таблицу поиска (с кодом одного из ответов других) для всех чисел ниже sub_max, что сделает это чрезвычайно быстрым для любого ввода. [1110 ]
Debian является очень хорошим выбором. Можно также использовать xen живой CD для тестирования всего и если все в порядке, установите его на жестком диске.
Любой из основных дистрибутивов должен хорошо работать. Выберите тот, которым Вы являетесь самыми довольными.
Я настоятельно рекомендую Debian или Ubuntu (сервер) для домена 0. Вот то, почему:
Я не рекомендовал бы это кому-то, кто хотел Виртуализацию настольных систем, я рекомендую Fedora. Однако как Xen размещают с 300 серверами Xen в производстве, я Настоятельно рекомендую чему-то базирующийся Debian. Конечно, используйте то, чем Вы довольны.. однако это могло бы стоить Вашего времени для получения довольным базирующимся дистрибутивом Debian на dom-0.
определите "лучше всего"
сразу, я сказал бы, что крупными соперниками является Debian, Red Hat и хинду, в зависимости от предпочтений управления и потребностей.
Red Hat EL5 (или Centos) - один из самых простых в установке Xen на OOB, а RH полностью поддерживает xen в качестве инструмента виртуализации; debian и ubuntu стремятся перейти на KVM. Я думаю, что в Fedora 11 ядро с поддержкой pvops по умолчанию. Просто моя стоимость 2c, я предпочитаю Red Hat, но, как они сказали, все, что вам удобно, будет работать.
Я случайно просматривал этот вопрос. Я развернул виртуальные машины Xen на множестве серверов в нашем кластере. Платформа - Fedora 12. Мы провели множество тестов и много вычислений на этих виртуальных машинах. Достаточно стабильно. Единственная проблема заключается в том, что вам нужно самостоятельно скомпилировать ядро: