Comments 7
Сколько и где надо учиться чтобы понимать о чем идет речь в таких статьях?
Где-то с середины совсем потерялся
Где-то с середины совсем потерялся
Эх… А где именно потерялись?
Зависит от начального уровня. Здесь нужно за спиной иметь базовые алгоритмы, графы и теорию вероятностей.
Зависит от начального уровня. Здесь нужно за спиной иметь базовые алгоритмы, графы и теорию вероятностей.
Да вроде базовые есть. Но это как учить язык. Без применения на практике видимо все быстро улетучивается
Вероятно, на этом месте.
Здесь начинается резкое повышение сложности формулировок.
И еще, правильно ли будет сказать, что прохождение теста неподходящим нам вариантом (с ненулевой вероятностью) связано с ограничениями по памяти?
Возьмем случайную 2-независимую хэш-функцию h: [n] \rightarrow [2s]. Эта такая функция, которая два произвольных различных ключа распределяет равновероятно независимо. Возьмем хэш-таблицу размера 2s. В каждой ячейке таблицы будет сидеть алгоритм для 1-разереженного вектора.
Здесь начинается резкое повышение сложности формулировок.
И еще, правильно ли будет сказать, что прохождение теста неподходящим нам вариантом (с ненулевой вероятностью) связано с ограничениями по памяти?
Да, проблема.
По поводу 1-разреженных векторов и проверок. Да, мы хотим уместить память алгоритма в . Если не дать алгоритму ошибаться, нижняя оценка по памяти взлетит до . Это на самом деле несложно показать.
Представьте, что у вас есть алгоритм, который умеет детерминированно определять, осталась в векторе ровно одна ненулевая позиция или нет. Возьмем множество размера и кинем обновления для всех . После обработки всех обновлений алгоритм сформирует слепок памяти. Вот я утверждаю, что из этого слепка можно восстановить все множество . Поскольку всего таких множеств , то размер слепка будет порядка .
Восстанавливать просто: перебираем все подмножества размером и кидаем обновления . Если угадали подмножество , то результат будет 1-разреженным вектором и алгоритм вернет True, иначе – False. Берем объединение по всем хорошим и получаем .
По поводу 1-разреженных векторов и проверок. Да, мы хотим уместить память алгоритма в . Если не дать алгоритму ошибаться, нижняя оценка по памяти взлетит до . Это на самом деле несложно показать.
Представьте, что у вас есть алгоритм, который умеет детерминированно определять, осталась в векторе ровно одна ненулевая позиция или нет. Возьмем множество размера и кинем обновления для всех . После обработки всех обновлений алгоритм сформирует слепок памяти. Вот я утверждаю, что из этого слепка можно восстановить все множество . Поскольку всего таких множеств , то размер слепка будет порядка .
Восстанавливать просто: перебираем все подмножества размером и кидаем обновления . Если угадали подмножество , то результат будет 1-разреженным вектором и алгоритм вернет True, иначе – False. Берем объединение по всем хорошим и получаем .
Сделал вставку про хэш-функции в этом месте.
Начните с курса на курсере. Очень интересно и очень просто. www.coursera.org/course/algs4partI
Sign up to leave a comment.
Компоненты связности в динамическом графе за один проход