Эффективная выборка дискретной случайной переменной [дубликат]

Если все остальное не удается, перекомпилируйте.

Недавно я смог избавиться от нерешенной внешней ошибки в Visual Studio 2012, просто перекомпилировав нарушивший файл. Когда я перестроил, ошибка исчезла.

Это обычно происходит, когда две (или более) библиотеки имеют циклическую зависимость. Библиотека A пытается использовать символы в B.lib и библиотеке B пытается использовать символы из A.lib. Ничего не существует для начала. Когда вы пытаетесь скомпилировать A, шаг ссылки завершится неудачно, потому что он не может найти B.lib. A.lib будет сгенерирован, но не будет dll. Затем вы компилируете B, который будет успешным и сгенерирует B.lib. Повторная компиляция A теперь будет работать, потому что теперь найден B.lib.

3
задан JDong 21 October 2013 в 00:16
поделиться

2 ответа

Существует метод O(1) -time. Посмотрите это подробное описание метода псевдонима Vose . К сожалению, он страдает высокой стоимостью инициализации. Для сравнительных таймингов более простых методов см. Запись в блоге Эли Бендерски . Больше времени можно найти в этом из трекера Python .

6
ответ дан Tim Peters 3 September 2018 в 13:51
поделиться

В эти дни было бы целесообразно перечислить все население США (~ 317 миллионов), если вам действительно нужен поиск O(1). Просто выберите номер до 317 миллионов и получите имя оттуда. (317000000 * 4 байта = 1.268GB)

Я думаю, что есть много способов O(log n). Есть ли какая-то конкретная причина, по которой вам нужно O(1) (они будут использовать намного меньше памяти)

4
ответ дан John La Rooy 3 September 2018 в 13:51
поделиться