Преимущество создания списка с использованием CDF заключается в том, что вы можете использовать двоичный поиск. Хотя вам нужно O (n) время и пространство для предварительной обработки, вы можете получить k чисел в O (k log n). Поскольку обычные списки Python неэффективны, вы можете использовать модуль array
.
Если вы настаиваете на постоянном пространстве, вы можете сделать следующее: O (n), O (1).
def random_distr(l):
r = random.uniform(0, 1)
s = 0
for item, prob in l:
s += prob
if s >= r:
return item
return item # Might occur because of floating point inaccuracies
я думаю, что вы ищете команду
bundle pack
, которая переместит ваши драгоценные камни из каталога .bundle к поставщику / кеш.
см. Сообщение Иегуды Каца о рабочих процессах сборщика на его сайте: http://yehudakatz.com/2010/02/09/using-bundler-in-real-life/
дополнительная информация о сборщике каталог: вы можете добавить в файл application.rb следующую строку, которая изменит каталог сборщика для пассажира phusion:
ENV['BUNDLER_HOME']="/home/or-wherever-you-want-to-point-it"