Вот то, что я придумал для взвешенного выбора без замены:
def WeightedSelectionWithoutReplacement(l, n):
"""Selects without replacement n random elements from a list of (weight, item) tuples."""
l = sorted((random.random() * x[0], x[1]) for x in l)
return l[-n:]
Это - O (m, регистрируют m) на количестве объектов в списке, который будет выбран из. Я вполне уверен, что это взвесит объекты правильно, хотя я не проверил его ни в каком формальном смысле.
Вот то, что я придумал для взвешенного выбора с заменой:
def WeightedSelectionWithReplacement(l, n):
"""Selects with replacement n random elements from a list of (weight, item) tuples."""
cuml = []
total_weight = 0.0
for weight, item in l:
total_weight += weight
cuml.append((total_weight, item))
return [cuml[bisect.bisect(cuml, random.random()*total_weight)] for x in range(n)]
Это - O (m + n, регистрируют m), где m является количеством объектов во входном списке, и n является количеством объектов, которые будут выбраны.
Похоже, что это более общая проблема SWING / AWT / JDK, что только установщик JBOSS:
Принятый ниже ответ решил проблему для меня:
Невозможно запустить java-программы с ubuntu
(«sudo apt-get install openjdk-6-jdk»)
Я думаю, что вы пытаетесь запустить какую-нибудь утилиту или скрипт из UNIX \ LINUX, который имеет некоторый графический интерфейс. В любом случае
РЕШЕНИЕ: чувак, все, что тебе нужно - это XServer & amp; Переадресация X11 включена. Я использую XMing (XServer). Вы уже включаете пересылку X11. Просто установите его (XMing) и продолжайте работать, когда вы создаете сеанс с PuTTY.
Постановка задачи - Получение java.awt.HeadlessException при попытке инициализировать java.awt.Component из приложения, так как среда tomcat не имеет заголовка (терминала).
Проблема - Виртуальная среда Linux была настроена без терминала виртуального дисплея. Пытался установить виртуальный дисплей - Xvfb, но Xvfb был снят сообществом redhat.
Решение - Установил «xorg-x11-drv-vmware.x86_64» с использованием yum, установил xorg-x11-drv-vmware.x86_64 и выполнил startx. Наконец, установите отображение: 0.0, используя экспорт DISPLAY =: 0.0, а затем выполните xhost +