Информатика

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

11
Почему быстрая сортировка лучше, чем другие алгоритмы сортировки на практике?
В стандартном курсе алгоритмов нас учат, что быстрая сортировка в среднем составляет а в худшем случае . В то же время изучаются другие алгоритмы сортировки: в худшем случае (например, mergesort и heapsort ) и даже линейное время в лучшем случае (например, сортировка пузырьков ), но с некоторыми дополнительными потребностями в …

7
Какое определение у P, NP, NP-complete и NP-hard?
Я в курсе о вычислениях и сложности , и я не в состоянии понять , что означают эти термины. Все, что я знаю, это то, что NP - это подмножество NP-complete, которое является подмножеством NP-hard, но я понятия не имею, что они на самом деле значат. Википедия тоже не сильно …

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

10
Как может язык, чей компилятор написан на C, быть быстрее C?
Взглянув на веб-страницу Джулии , вы можете увидеть некоторые тесты нескольких языков по нескольким алгоритмам (время показано ниже). Как может язык с компилятором, изначально написанным на C, превзойти C-код? Рисунок: время тестов относительно C (чем меньше, тем лучше, производительность C = 1,0).

3
Есть ли система за магией анализа алгоритма?
Существует множество вопросов о том, как анализировать время выполнения алгоритмов (см., Например, анализ времени выполнения и анализ алгоритма ). Многие из них похожи, например, те, которые запрашивают анализ затрат на вложенные циклы или алгоритмы «разделяй и властвуй», но большинство ответов, похоже, сделаны специально. С другой стороны, ответы на другой общий …

12
Почему действительно так важна проблема остановки?
Я не понимаю, почему проблема остановки так часто используется, чтобы исключить возможность определения, останавливается ли программа. Википедия [статья] [1] правильно объясняет, что детерминированная машина с конечной памятью либо остановит, либо повторит предыдущее состояние. Вы можете использовать алгоритм, который определяет, зацикливается ли связанный список, для реализации функции остановки с пространственной сложностью …

3
Как можно решить, имеет ли некоторую последовательность цифр?
Нам дали следующее упражнение. Позволять f(n)={100n occurs in the decimal representation of πelsef(n)={10n occurs in the decimal representation of π0else\qquad \displaystyle f(n) = \begin{cases} 1 & 0^n \text{ occurs in the decimal representation of } \pi \\ 0 & \text{else}\end{cases} Докажите, что вычислимо.fff Как это возможно? Насколько я знаю, мы …

12
Почему так много языков программирования?
Я довольно свободно говорю на C / C ++ и могу разбираться с различными языками сценариев (awk / sed / perl). Я начал использовать python гораздо больше, потому что он сочетает в себе некоторые изящные аспекты C ++ с возможностями сценариев awk / sed / perl. Но почему так много …

14
Почему я могу посмотреть на график и сразу же найти ближайшую точку к другой точке, но на программирование у меня уходит O (n) время?
Позвольте мне уточнить: Учитывая диаграмму рассеяния некоторого заданного числа точек n, если я хочу мысленно найти ближайшую точку к любой точке на графике, я могу сразу игнорировать большинство точек на графике, сужая свой выбор до некоторого небольшого, постоянного числа точек поблизости , Тем не менее, в программировании, учитывая набор точек …

6
Полезна ли теория категорий для обучения функциональному программированию?
Я изучаю Haskell, и я очарован языком. Однако у меня нет серьезных знаний по математике или CS. Но я опытный программист. Я хочу изучить теорию категорий, чтобы стать лучше на Хаскеле. Какие темы в теории категорий я должен изучить, чтобы обеспечить хорошую основу для понимания Haskell?

4
Как преобразовать конечные автоматы в регулярные выражения?
Преобразование регулярных выражений в (минимальный) NFA, который принимает тот же язык, легко с помощью стандартных алгоритмов, например , алгоритма Томпсона . Другое направление кажется более утомительным, и иногда получающиеся выражения являются грязными. Какие существуют алгоритмы для преобразования NFA в эквивалентные регулярные выражения? Есть ли преимущества в отношении сложности времени или …

6
Почему не было алгоритма шифрования, основанного на известных проблемах NP-Hard?
Большая часть современного шифрования, такого как RSA, основывается на целочисленной факторизации, которая, как полагают, не является сложной задачей NP, но относится к BQP, что делает его уязвимым для квантовых компьютеров. Интересно, почему не было алгоритма шифрования, основанного на известной NP-трудной проблеме. Это звучит (по крайней мере, теоретически) так, как если …

13
Как обмануть эвристику «попробуй несколько тестов»: алгоритмы, которые кажутся правильными, но на самом деле неверны
Чтобы попытаться проверить, является ли алгоритм для какой-либо проблемы правильным, обычная отправная точка состоит в том, чтобы попытаться запустить алгоритм вручную на нескольких простых тестовых примерах - попробуйте на нескольких примерах проблемных примеров, включая несколько простых «угловых случаев ». Это отличная эвристика: это отличный способ быстро отсеять множество неверных попыток …

2
BIT: Что такое интуиция за бинарным индексированным деревом и как о нем думали?
Бинарное индексированное дерево не имеет или почти не имеет литературы по сравнению с другими структурами данных. Единственное место, где это преподается, это учебник по topcoder . Хотя учебник завершен во всех объяснениях, я не могу понять интуицию за таким деревом? Как это было изобретено? Что является фактическим доказательством его правильности?

5
Как не решить P = NP?
Существует множество попыток доказать либо либо , и, естественно, многие люди задумываются над этим вопросом, имея идеи для доказательства того или иного направления.P ≠ N PP = N Pпзнак равноNп\mathsf{P} = \mathsf{NP} P ≠ N Pп≠Nп\mathsf{P} \neq \mathsf{NP} Я знаю, что есть подходы, которые, как было доказано, не работают, и, …

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