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

20
Проблемы, для которых алгоритмы, основанные на уточнении разделов, работают быстрее, чем за логлиническое время

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

20
Каков наиболее эффективный способ вычисления факториалов по модулю простого числа?

Знаете ли вы какой-либо алгоритм, который эффективно рассчитывает факториал после модуля? Например, я хочу запрограммировать: for(i=0; i<5; i++) sum += factorial(p-i) % p; Но pэто большое число (простое число) для непосредственного применения факториала .( р ≤ 108)(п≤108)(p \leq 10^ 8) В Python...

20
Почему диплоидные (доминантные / рецессивные) гены не используются широко в генетических алгоритмах?

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

20
Трудно ли определить «двойные» арифметические прогрессии 3SUM?

Это вдохновлено вопросом интервью . Нам дан массив целых чисел и мы должны определить, существуют ли различные i < j < k такие, чтоa1, ... ,Na1,…,ana_1, \dots, a_nя < J < Ki<j<ki \lt j \lt k aК- аJ= аJ- аяak−aj=aj−aia_k - a_j = a_j - a_i k - j = j - ik−j=j−ik - j = j - i т.е....

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

a1,…,ana1,…,ana_1, \ldots, a_n000lllaiaia_ibibib_i000lllbibib_ib i O ( n 4 √max(|a1−b1|,…,|an−bn|)max(|a1−b1|,…,|an−bn|)\max(|a_1-b_1|, \ldots, |a_n-b_n|)bibib_iO(nl√4)O(nl4)O(n\sqrt[4]{l}) Я, честно говоря, понятия не имею, как вообще начать решать этот вопрос. Мне кажется, это вопрос...

20
Проблемы в P с заметно более быстрыми рандомизированными алгоритмами

Есть ли в проблемы, в которых рандомизированные алгоритмы бьют нижние оценки для детерминированных алгоритмов? Конкретнее, знаем ли мы для которого ? Здесь \ mathsf {PTIME} (f (n)) означает набор языков, разрешимых рандомизированным TM с постоянной (одной или двухсторонней) ошибкой в f (n) шагах. k...

20
Как описать алгоритмы, доказать и проанализировать их?

Прежде чем читать «Искусство компьютерного программирования» (TAOCP) , я не углублялся в эти вопросы. Я бы использовал псевдокод для описания алгоритмов, понимания их и оценки времени выполнения только по порядку роста. TAOCP тщательно меняет свое мнение. TAOCP использует английский, смешанный с...

20
Насколько сложно найти дискретный логарифм?

Дискретный логарифм такого же , как нахождение в , дан в , гр и N .bbba c Nab=cmodNab=cmodNa^b=c \bmod NaaacccNNN Интересно, в каких группах сложности (например, для классических и квантовых компьютеров) это находится, и какие подходы (то есть алгоритмы) являются лучшими для выполнения этой задачи....

20
Практическое применение Radix Sort

Radix sort теоретически очень быстр, когда вы знаете, что ключи находятся в определенном ограниченном диапазоне, скажем, например, значений в диапазоне . Если вы просто конвертируете значения в базу что занимает время , выполните сортировку по основанию и затем преобразуйте обратно в исходную базу...

19
Алгоритмы проверки типов

Я начинаю личное библиографическое исследование по алгоритмам проверки типов и хочу несколько советов. Какие алгоритмы, стратегии и общие методы проверки типов наиболее часто используются? Меня особенно интересуют сложные алгоритмы проверки типов, которые были реализованы в широко известных строго...

19
Различие в кейсе при динамическом программировании: пример необходим!

Я работал над динамическим программированием в течение некоторого времени. Канонический способ оценить рекурсию динамического программирования - создать таблицу всех необходимых значений и заполнять ее построчно. См., Например, Cormen, Leiserson и др .: «Введение в алгоритмы» для введения. Я...

19
Взвешенная сумма последних N чисел

Предположим, мы получаем цифры в потоке. После получения каждого числа необходимо вычислить взвешенную сумму последних NNN чисел, где веса всегда одинаковы, но произвольны. Насколько эффективно это можно сделать, если нам разрешено сохранять структуру данных, чтобы помочь с вычислениями? Можем ли...

19
распределенная альфа-бета-обрезка

Я ищу эффективный алгоритм, который позволил бы мне обрабатывать минимаксное дерево поиска шахмат с альфа-бета-отсечкой в распределенной архитектуре. Алгоритмы, которые я нашел (PVS, YBWC, DTS см. Ниже), все довольно старые (1990 год - самый последний). Я предполагаю, что с тех пор было много...

19
Чем динамическое программирование отличается от грубой силы

Я читал о динамическом программировании, когда наткнулся на следующую цитату Алгоритм динамического программирования рассмотрит все возможные пути решения проблемы и выберет лучшее решение. Таким образом, мы можем приблизительно представить динамическое программирование как интеллектуальный метод...

19
Существует ли алгоритм O (n log n) для упрощения четырехмерной линии?

Алгоритм Рамер-Дуглас-Peucker для упрощения линии имеет наихудший среда выполнения. Для правильно распределенных случайных входов ожидаемая сложность времени выполнения . В 2D есть другие алгоритмы со сложностью времени выполнения худшем случае , которые вычисляют точно такой же результат, что и...

19
Как время выполнения алгоритма Укконена зависит от размера алфавита?

Меня интересует вопрос об асимптотическом времени выполнения алгоритма Укконена , возможно, самого популярного алгоритма построения суффиксных деревьев за линейное (?) Время. Вот цитата из книги «Алгоритмы на строках, деревьях и последовательностях» Дэна Гасфилда (раздел 6.5.1): »... в...

19
Назначение серого узла в графе поиска в глубину

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

19
Генерация входных данных для алгоритмов случайного тестирования графа?

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

19
Сложность нахождения биномиального коэффициента, равного числу

Предположим, вы получаете число mmm (используя O(logm)O(log⁡m)O(\log m) бит в двоичном кодировании). Как быстро вы можете найти (или определить, что такое не существует) ?n,k∈N,1<k≤n2:(nk)=mn,k∈N,1<k≤n2:(nk)=mn,k\in \mathbb N,...