Вопросы с тегом «algorithms»

33
Что такое динамическое программирование?

Извините заранее, если этот вопрос звучит глупо ... Насколько я знаю, построение алгоритма с использованием динамического программирования работает следующим образом: выразить проблему как рекуррентное отношение; Реализуйте рекуррентную связь либо через памятку, либо через восходящий подход....

33
Насколько асимптотически плохо наивные тасовки?

Хорошо известно, что этот «наивный» алгоритм перестановки массива путем замены каждого элемента на другой, случайно выбранный, не работает правильно: for (i=0..n-1) swap(A[i], A[random(n)]); В частности, поскольку на каждой из итераций делается один из вариантов (с одинаковой вероятностью),...

32
Повлияет ли аппаратное обеспечение / реализация на временную / пространственную сложность алгоритмов?

Я даже не студент CS, так что это может быть глупым вопросом, но, пожалуйста, потерпите меня ... В до-компьютерную эпоху мы можем реализовать структуру данных массива только с чем-то вроде массива ящиков. Так как перед извлечением значения из него нужно найти ящик с соответствующим индексом,...

32
Алгоритм обнаружения цикла Флойда | Определение начальной точки цикла

Я ищу помощь в понимании алгоритма обнаружения цикла Флойда. Я прошел объяснение в Википедии ( http://en.wikipedia.org/wiki/Cycle_detection#Tortoise_and_hare ) Я могу видеть, как алгоритм обнаруживает цикл в O (N) времени. Однако я не могу представить себе тот факт, что как только указатели...

32
Что такое очень короткие программы с неизвестным статусом остановки?

Эта 579-битная программа в двоичном лямбда-исчислении имеет неизвестный статус остановки: 01001001000100010001000101100111101111001110010101000001110011101000000111001110 10010000011100111010000001110011101000000111001110100000000111000011100111110100...

31
Имитация вероятности 1 из 2 ^ N с менее чем N случайными битами

Скажем, мне нужно смоделировать следующее дискретное распределение: P(X=k)={12N,1−12N,if k=1if k=0P(X=k)={12N,if k=11−12N,if k=0 P(X = k) = \begin{cases} \frac{1}{2^N}, & \text{if $k = 1$} \\ 1 - \frac{1}{2^N}, & \text{if $k = 0$} \end{cases} Наиболее очевидный способ - нарисовать случайных битов и...

31
Добавление элементов в отсортированный массив

Каков был бы самый быстрый способ сделать это (с алгоритмической точки зрения, а также с практической точки зрения)? Я думал что-то вроде следующего. Я мог бы добавить в конец массива и затем использовать пузырьковую сортировку, так как она имеет наилучший случай (полностью отсортированный массив в...

31
Нахождение интересных анаграмм

Скажем, что и b 1 b 2 … b n - две строки одинаковой длины. Anagramming из двух строк является взаимно однозначное отображение р : [ 1 ... п ] → [ 1 ... п ] такое , что я = Ь р ( я ) для каждого I .a1a2…ana1a2…ana_1a_2\ldots a_nb1b2…bnb1b2…bnb_1b_2\ldots b_np:[1…n]→[1…n]p:[1…n]→[1…n]p:[1\ldots...

30
Различия и отношения между рандомизированными и недетерминированными алгоритмами?

Какие различия и отношения существуют между рандомизированными алгоритмами и недетерминированными алгоритмами? Из Википедии Рандомизированное алгоритм представляет собой алгоритм , который использует степень случайности как часть своей логики. Алгоритм обычно использует равномерно случайные биты в...

30
Хеш-таблицы против бинарных деревьев

При реализации словаря («Я хочу просмотреть данные клиентов по их идентификаторам»), типичными структурами данных являются хеш-таблицы и двоичные деревья поиска. Я знаю, например, что библиотека C ++ STL реализует словари (они называют их картами), используя (сбалансированные) деревья двоичного...

30
Является ли проблемой быть программистом без знания вычислительной сложности?

Я получил задание в моем университете. Я взял его домой и попытался запрограммировать алгоритм для его решения, это было что-то, связанное с графиками, поиск связанных компонентов, я думаю. Затем я сделал самую тривиальную вещь, которая пришла мне в голову, а затем показала моему лектору. После...

30
Перечислите все неизоморфные графы определенного размера.

Я хотел бы перечислить все неориентированные графы размера , но мне нужен только один экземпляр каждого класса изоморфизма . Другими словами, я хочу перечислить все неизоморфные (неориентированные) графы по n вершинам. Как я могу это сделать?NnnNnn Точнее, я хочу алгоритм, который будет...

29
Насколько сложно считать количество простых путей между двумя узлами в ориентированном графе?

Существует простой полиномиальный алгоритм, позволяющий определить, существует ли путь между двумя узлами в ориентированном графе (просто выполните обычный обход графа с, скажем, поиском по глубине). Однако, на удивление, проблема становится намного сложнее, если вместо проверки существования мы...

29
Как доказать, что жадный алгоритм верен

У меня есть жадный алгоритм, который, я подозреваю, может быть правильным, но я не уверен. Как мне проверить, правильно ли это? Какие методы использовать для доказательства правильности жадного алгоритма? Существуют ли общие модели или методы? Я надеюсь, что это станет справочным вопросом, на...

29
Где взять графики для проверки моих алгоритмов поиска?

Я реализую набор алгоритмов поиска пути, таких как Dijkstra, Depth First и т. Д. Сначала я использовал пару самодельных графиков, но теперь я хотел бы пойти дальше, и поэтому я ищу либо графики, используемые в тестах; графики городов реального мира (или способ загрузки информации такого рода с карт...

29
Как определить вероятные связи в социальной сети?

Мне любопытно определить подход к алгоритму «предложенных друзей». У Facebook есть функция, с помощью которой он будет рекомендовать вам людей, с которыми, по его мнению, вы можете быть знакомы. Эти пользователи обычно (исключая крайние случаи, когда пользователь специально рекомендует друга )...

29
Единая выборка из симплекса

Я ищу алгоритм для генерации массива из N случайных чисел, так что сумма из N чисел равна 1, а все числа лежат в пределах от 0 до 1. Например, N = 3, случайная точка (x, y, я) должен лежать в треугольнике: x + y + z = 1 0 < x < 1 0 < y < 1 0 < z < 1 В идеале я хочу, чтобы каждая...

28
Какие комбинации до, после и по порядку секвенизации являются уникальными?

Мы знаем пост-заказ, post L(x) => [x] post N(x,l,r) => (post l) ++ (post r) ++ [x] и предварительный заказ pre L(x) => [x] pre N(x,l,r) => [x] ++ (pre l) ++ (pre r) и в порядке обхода соотв. sequentialisation. in L(x) => [x] in N(x,l,r) => (in l) ++ [x] ++ (in r) Легко видеть, что...

28
Как найти суперзвезду за линейное время?

Рассмотрим ориентированные графы. Мы называем узел суперзвездой том и только в том случае, если от него невозможно связаться с другим узлом, но все остальные узлы имеют ребро к . Формально:vvvv vvv \qquad \displaystyle v Суперзвезда  : ⟺ о у т д е г ( v ) = 0 ∧ я н д е г ( v ) = п - 1 супер...

28
Как эффективно определить, является ли данная лестница действительной?

В моем местном сквош-клубе есть лестница, которая работает следующим образом. В начале сезона мы строим таблицу с именами каждого члена клуба на отдельной строке. Затем мы записываем количество выигранных игр и количество игр, сыгранных рядом с каждым именем (в форме: игрок выигрывает / игры)....