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

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

3
Почему Mersenne Twister считается хорошим?
Mersenne Twister считается хорошим. Черт, источник CPython говорит, что он «является одним из наиболее тщательно протестированных генераторов из существующих». Но что это значит? Когда меня просят перечислить свойства этого генератора, большинство из того, что я могу предложить, плохо: Он массивный и негибкий (например, без поиска или нескольких потоков), Он не …

3
Факторный алгоритм более эффективен, чем наивное умножение
Я знаю, как кодировать для факториалов, используя итеративные и рекурсивные (например, n * factorial(n-1)например). Я прочитал в учебнике (без каких-либо дальнейших объяснений), что существует еще более эффективный способ кодирования для факториалов, разделив их пополам рекурсивно. Я понимаю, почему это может иметь место. Однако я хотел попробовать написать код самостоятельно, и …

6
Математика позади преобразования из любой базы в любую базу без прохождения базы 10?
Я искал математику за преобразование из любой базы в любую базу. Это больше о подтверждении моих результатов, чем о чем-либо. Я нашел то, что кажется моим ответом на mathforum.org, но я все еще не уверен, правильно ли я это понял. У меня есть преобразование из большей базы в меньшую базу, …

2
Почему журнал в биг-о двоичного поиска не является базой 2?
Я новичок в понимании алгоритмов информатики. Я понимаю процесс бинарного поиска, но у меня возникло небольшое недопонимание с его эффективностью. При размере элементов в среднем потребуется шагов, чтобы найти конкретный элемент. Взяв логарифм с обеих сторон 2, получим . Так не будет ли среднее число шагов для алгоритма бинарного поиска …

3
В худшем случае
У меня проблемы с поиском хороших ресурсов, которые дают наихудший случай на месте стабильногоO ( n lnн )O(nln⁡n)O(n \ln n) алгоритма сортировки. Кто-нибудь знает какие-нибудь хорошие ресурсы? Просто напоминание, означает, что он использует переданный массив, а алгоритму сортировки разрешено использовать только постоянное дополнительное пространство. Стабильный означает, что элементы с одинаковым …

1
Получаете ли вы DFS, если вы меняете очередь на стек в реализации BFS?
Вот стандартный псевдокод для поиска в ширину: { seen(x) is false for all x at this point } push(q, x0) seen(x0) := true while (!empty(q)) x := pop(q) visit(x) for each y reachable from x by one edge if not seen(y) push(q, y) seen(y) := true Здесь pushи popпредполагаются операции …

3
Алгоритм, который находит число простых путей от
Можно ли предложить мне алгоритм линейного времени , который принимает в качестве входных данных ориентированного ациклического граф и две вершины S и T и возвращает число простых путей от й до т в G . У меня есть алгоритм, в котором я буду запускать DFS (Поиск в глубину), но если …

4
Как измерить «сортировку»
Мне интересно, есть ли стандартный способ измерения "сортировки" массива? Будет ли массив с медианным числом возможных инверсий считаться максимально несортированным? Под этим я подразумеваю, что это в основном как можно дальше от сортировки или обратной сортировки.

2
Есть ли разница между динамическим программированием сверху вниз и снизу вверх?
Есть ли принципиальная разница между динамическим программированием сверху вниз и снизу вверх? В частности, существует ли проблема, которую можно решить снизу вверх, но не сверху вниз? Или подход снизу вверх просто раскручивает повторение подхода сверху вниз?

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

2
Есть ли улучшения в алгоритме Даны Англюин для изучения регулярных наборов
В своей основополагающей работе 1987 года Дана Англуин представляет алгоритм полиномиального времени для изучения DFA из запросов членства и теоретических запросов (контрпримеры к предлагаемому DFA). Она показывает, что если вы пытаетесь выучить минимальный DFA с состояниями, а ваш самый большой контрпример имеет длину , то вам нужно выполнить членских запросов …

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

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

2
Что такое очень короткие программы с неизвестным статусом остановки?
Эта 579-битная программа в двоичном лямбда-исчислении имеет неизвестный статус остановки: 01001001000100010001000101100111101111001110010101000001110011101000000111001110 10010000011100111010000001110011101000000111001110100000000111000011100111110100 00101011000000000010111011100101011111000000111001011111101101011010000000100000 10000001011100000000001110010101010101010111100000011100101010110000000001110000 00000111100000000011110000000001100001010101100000001110000000110000000100000001 00000000010010111110111100000010101111110000001100000011100111110000101101101110 00110000101100010111001011111011110000001110010111111000011110011110011110101000 0010110101000011010 То есть неизвестно, завершается ли эта программа или нет. Чтобы определить это, вы должны решить гипотезу Коллатца - или, по крайней мере, для всех чисел до 2 ^ 256. В этом хранилище …

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.