algorithm- все статьи тега ➜ страница 6


Алгоритм для генерации всех возможных перестановок списка?

скажем, у меня есть список из n элементов, я знаю, что есть N! возможные способы упорядочения этих элементов. Каков алгоритм для генерации всех возможных упорядочений этого списка? Например, у меня есть список [a, b, c]. Алгоритм будет возвращать [[А, Б], [А, С, Б], [Б, А, Ц], [Б, С], [С, А, Б], [с, B, а]]. Я читаю это здесь http://en.wikipedia.org/wiki/Permutation#Algorithms_to_generate_permutations но Википедия никогда не была хороша в объясняющий. Я почти ничего не понимаю. ...

Каков наиболее эффективный способ нахождения всех факторов числа в Python?

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

Что такое хорошая хэш-функция?

что такое хорошая хэш-функция? Я видел много хэш-функций и приложений в моих курсах структур данных в колледже, но в основном я понял, что довольно сложно сделать хорошую хэш-функцию. Как правило, чтобы избежать столкновений мой профессор сказал, что: function Hash(key) return key mod PrimeNumber end (mod-это оператор % в C и подобных языках) С простым числом, чтобы быть размером хэш-таблицы. Я понимаю, что это довольно хорошая функция, чтобы избежать столкновений и быстрый, но как могу ли ...

Отрицательные веса с использованием алгоритма Дейкстры

Я пытаюсь понять, почему алгоритм Дейкстры не работает с отрицательными весами. Читая пример на Кратчайших Путей, Я пытаюсь выяснить следующую ситуацию: 2 A-------B / 3 / -2 / C на сайте: предполагая, что ребра направлены слева направо, если мы начнем с помощью A алгоритм Дейкстры выберет минимизацию ребра (A, x) d(A,A)+Длина (край), а именно (A,B). Затем он устанавливает d (A,B)=2 и выбирает другой ребро (г,с) минимизации д(А,Г)+Д(Г,С); единственный выбор ( ...

Парсер уравнений (выражений) с приоритетом?

Я разработал парсер уравнений с использованием простого алгоритма стека, который будет обрабатывать двоичные файлы (+, -, |, &, *, /, etc) операторы, унарные (!) операторы и скобки. использование этого метода, однако, оставляет меня со всем, имеющим одинаковый приоритет - он оценивается слева направо независимо от оператора, хотя приоритет может быть применен с помощью скобок. Итак, прямо сейчас "1+11*5" возвращает 60, а не 56, как можно было бы ожидать. пока это подходит для текущего про ...

Есть ли какой - либо алгоритм в c# для сингуляризации-плюрализации слова?

существует ли какой - либо алгоритм в c# для сингуляризации-плюрализации слова (на английском языке) или существует библиотека .net для этого (может быть также на разных языках)? ...

В чем разница между эвристикой и алгоритмом?

в чем разница между эвристикой и алгоритмом? ...

хэш-функция для строк

Я работаю над хэш-таблицей на языке C, и я тестирую хэш-функцию для строки. первая функция, которую я пробовал, это добавить код ascii и использовать по модулю (%100), но у меня плохие результаты с первым тестом данных: 40 коллизий для 130 слов. окончательные входные данные будут содержать 8 000 слов (это словарь, хранящийся в файле). Хэш-таблица объявляется как int table[10000] и содержит позицию слова в txt-файле. первый вопрос в том, какой лучший алгоритм для хэширования строки ? и как оп ...

Равномерно распределяя n точек на сфере

Мне нужен алгоритм, который может дать мне позиции вокруг сферы для N точек (возможно, менее 20), которые смутно распространяют их. Там нет необходимости в "совершенстве", но мне просто нужно, чтобы никто из них не сгруппировался вместе. Этот вопрос дает хороший код, но я не мог найти способ сделать эту форму, как это казалось 100% рандомизированных. этот блог рекомендуется было два способа, позволяющие вводить количество точек на сфере, но это Сафф и Куйлаарс алгоритм точно в psuedocode я м ...

Примеры алгоритмов, который работает за O(1) до o(n журнал N) и o(зарегистрируйте N) сложности

Каковы некоторые алгоритмы, которые мы используем ежедневно, которые имеют O(1), O(n log n) и o (log n) сложности? ...

Программист головоломка: кодирование состояния шахматной доски на протяжении всей игры

Не совсем вопрос, скорее головоломка... на протяжении многих лет я участвовал в нескольких технических интервью новых сотрудников. Помимо стандартных вопросов "знаете ли вы технологию X", я также попытался понять, как они подходят к проблемам. Как правило, я отправлял им вопрос по электронной почте за день до интервью и ожидал, что они придумают решение на следующий день. часто результаты были бы довольно интересными - неправильно, но интересно - и человек все равно получит мою рекомендацию, е ...

Где я могу получить "полезный" алгоритм двоичного поиска C++?

мне нужен алгоритм двоичного поиска, совместимый с контейнерами C++ STL, что-то вроде std::binary_search в стандартной библиотеке <algorithm> заголовок, но мне нужно, чтобы он возвращал итератор, который указывает на результат, а не простое логическое значение, сообщающее мне, Существует ли элемент. (на боковой ноте, что, черт возьми, думал стандартный комитет, когда они определили API для binary_search?!) моя главная задача здесь заключается в том, что мне нужна скорость бинарного поиск ...

Как найти K-й наименьший элемент в объединении двух отсортированных массивов?

это вопрос домашнего задания. Они говорят, что это занимает O(logN + logM) здесь N и M длины массивов. назовем массивы a и b. Очевидно, что мы можем игнорировать все a[i] и b[i] где i > k. Сначала давайте сравним a[k/2] и b[k/2]. Пусть b[k/2]>a[k/2]. Поэтому мы можем отбросить и все b[i], где i > k / 2. теперь у нас есть все a[i], где я b[i], где i каков следующий шаг? ...

Алгоритм для размещения перекрывающихся прямоугольников?

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

Подсчет инверсий в массиве

Я разрабатываю алгоритм, чтобы сделать следующее: данный массив A[1... n] для каждого i < j, найти все пары инверсии такие, что A[i] > A[j]. Я использую сортировку слиянием и копирование массива A в массив B, а затем сравнение двух массивов, но мне трудно понять, как я могу использовать это, чтобы найти количество инверсий. Любые подсказки или помощь будут очень признательны. ...

Быстрая стабильная реализация алгоритма сортировки в javascript

Я ищу, чтобы отсортировать массив около 200-300 объектов, сортировка по определенному ключу и заданному порядку (asc/desc). Порядок результатов должен быть последовательным и стабильным. какой алгоритм лучше всего использовать, и не могли бы вы привести пример его реализации в javascript? спасибо! ...

Найти XOR всех чисел в заданном диапазоне

вам дается большой диапазон [a, b], где 'a' и 'b' обычно могут быть от 1 до 4,000,000,000 включительно. Вы должны узнать XOR всех чисел в данном диапазоне. эта проблема была использована в TopCoder SRM. Я видел одно из решений, представленных в матче, и я не могу понять, как он работает. может кто - нибудь помочь объяснить выигрышное решение: long long f(long long a) { long long res[] = {a,1,a+1,0}; return res[a%4]; } long long getXor(long long a, long long b) { return f(b)^f ...

Какой самый быстрый алгоритм сортировки связанного списка?

Мне любопытно, если O (N log n) - это лучшее, что может сделать связанный список. ...

Big-oh vs big-theta [дубликат]

Возможные Дубликаты:в чем разница между Θ(n) и O(n)? Мне кажется, что когда люди говорят о сложности алгоритма неофициально, они говорят о big-oh. Но в формальных ситуациях я часто вижу Биг-тета со случайным Биг-о, брошенным. Я знаю математически, в чем разница между ними, но на английском языке, в какой ситуации использование big-oh, когда вы имеете в виду big-theta, будет неправильным, или наоборот (пример алгоритма будет оценен)? бонус: почему люди, казалось бы, всегда используют big ...

Получение powerset набора в Java

в множество {1, 2, 3} - это: {{}, {2}, {3}, {2, 3}, {1, 2}, {1, 3}, {1, 2, 3}, {1}} допустим, у меня есть Set в Java: Set<Integer> mySet = new HashSet<Integer>(); mySet.add(1); mySet.add(2); mySet.add(3); Set<Set<Integer>> powerSet = getPowerset(mySet); Как написать функцию getPowerset, с наилучшим возможным порядком сложности? (Я думаю, что это может быть O(2^n).) ...