Информатика

Q & A для студентов, исследователей и практиков информатики

11
Почему
Я хотел бы знать, есть ли правило, чтобы доказать это. Например, если я использую закон распределения, я получу только ( A ∨ A ) ∧ ( A ∨ ¬ B )(A∨A)∧(A∨¬B)(A \lor A) \land (A \lor \neg B) .

4
Наименьшее количество сравнений, необходимых для сортировки (заказа) 5 элементов
Найдите наименьшее количество сравнений, необходимое для сортировки (упорядочения) пяти элементов, и разработайте алгоритм, который сортирует эти элементы, используя это количество сравнений. Решение : их 5! = 120 возможных результатов. Поэтому двоичное дерево для процедуры сортировки будет иметь по крайней мере 7 уровней. Действительно, ≥ 120 означает≥ 7. Но 7 сравнений …

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

4
Нет ли алгоритма сортировки со всеми конкретными желаемыми свойствами?
На сайте Алгоритмы сортировки делается следующее заявление: Идеальный алгоритм сортировки будет иметь следующие свойства: Стабильный: равные ключи не переупорядочены. Работает на месте, требуя дополнительного пространства.O(1)O(1)O(1) Сравнение ключей в худшем случае .O(n⋅lg(n))O(n⋅lg⁡(n))O(n\cdot\lg(n)) В худшем случае свопы.O(n)O(n)O(n) Адаптивный: Ускоряется до когда данные почти отсортированы или когда уникальных ключей мало.O(n)O(n)O(n) Не существует алгоритма, …

1
Каковы наиболее сильные системы известных типов, для которых вывод является решающим?
Хорошо известно, что вывод типа Хиндли-Милнера (простой тип вычисления с полиморфизмом) имеет разрешимый вывод типа: вы можете реконструировать основные типы для любых программ без каких-либо аннотаций.λλ\lambda Добавление классов типов в стиле Haskell, похоже, сохраняет эту разрешимость, но дальнейшие добавления делают вывод без аннотаций неразрешимым (семейства типов, GADT, зависимые типы, типы …

5
Сжатие данных с использованием простых чисел
Недавно я наткнулся на следующую интересную статью, в которой утверждается, что эффективное сжатие случайных наборов данных всегда более чем на 50%, независимо от типа и формата данных. В основном он использует простые числа для уникального построения представления 4-байтовых блоков данных, которые легко распаковать, учитывая, что каждое число является уникальным произведением …

3
Алгоритм минимизации площади поверхности при заданном объеме
Рассмотрим следующую алгоритмическую задачу: Входные данные: натуральное число вместе с его простой факторизацией. Найти: натуральные числа которые минимизируют , с учетом ограничения, чтоNNnх , у, zИкс,Y,Zx,y,zх у+ уZ+ х зИксY+YZ+ИксZxy+yz+xzх уZ= nИксYZзнак равноNxyz=n В чем сложность этой проблемы? Есть ли алгоритм полиномиального времени? Это NP-жесткий? Эта проблема в основном задает …

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

3
Преобразование (математических) задач в экземпляры SAT
То, что я хочу сделать, это превратить мою математическую задачу в булеву проблему удовлетворенности (SAT), а затем решить ее с помощью SAT Solver. Интересно, знает ли кто-нибудь руководство, руководство или что-нибудь, что поможет мне преобразовать мою проблему в экземпляр SAT. Кроме того, я хочу решить эту проблему лучше, чем экспоненциально. …

2
Выражение вычислений такое же, как монада?
Этот вопрос был перенесен из переполнения стека, поскольку на него можно ответить в разделе «Информатика в стеке». Мигрировал 5 лет назад . Я все еще изучаю функциональное программирование (с помощью f #), и недавно я начал читать о вычислительных выражениях. Я до сих пор не до конца понимаю эту концепцию, …

2
Теоретические основы разделяй и властвуй
Когда дело доходит до разработки алгоритмов, часто используются следующие методы: Динамическое программирование Жадная стратегия Разделяй и властвуй Хотя для первых двух методов существуют хорошо известные теоретические основы, а именно принцип оптимальности Беллмана и теория матроидов (соответственно, жадных), я не смог найти такой общей основы для алгоритмов, основанных на УиК. Во-первых, …

4
Автоматическая оптимизация умножения 0-1 матричного вектора
Вопрос: Существует ли установленная процедура или теория для генерации кода, который эффективно применяет умножение матрицы на вектор, когда матрица плотна и заполнена только нулями и единицами? В идеале оптимизированный код должен систематически использовать ранее вычисленную информацию для сокращения дублируемой работы. Другими словами, у меня есть матрица MMM и я хочу …

4
Почему мы используем постоянные структуры данных в функциональном программировании?
Функциональное программирование использует постоянные структуры данных и неизменные объекты. Мой вопрос: почему важно иметь такие структуры данных здесь? Я хочу понять на низком уровне, что произойдет, если структура данных не является постоянной? Будет ли программа зависать чаще?

2
Что подразумевается под теорией категорий, еще не знает, как обращаться с функциями более высокого порядка?
Читая Удай Редди ответ на Что такое соотношение между функторов в SML и теории категорий? Удай заявляет Теория категорий еще не знает, как обращаться с функциями более высокого порядка. Когда-нибудь, это будет. Поскольку я думал, что теория категорий способна послужить основой для математики, то должна быть возможность вывести все математические …

5
Почему функциональные языки Тьюринга завершены?
Возможно, мое ограниченное понимание предмета неверно, но это то, что я понимаю до сих пор: Функциональное программирование основано на лямбда-исчислении, сформулированном Алонзо Черчем. Императивное программирование основано на модели машины Тьюринга, созданной Аланом Тьюрингом, учеником Черча. Лямбда-исчисление является таким же мощным и способным, как и машина Тьюринга, что означает , что …

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