Информатика

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

9
Что такое безопасный язык программирования?
Безопасные языки программирования (PL) набирают популярность. Интересно, каково формальное определение безопасного PL. Например, C небезопасен, но Java безопасен. Я подозреваю, что свойство «safe» должно применяться к реализации PL, а не к самой PL. Если это так, давайте обсудим определение безопасной реализации PL. Мои собственные попытки формализовать это понятие привели к …

4
Временная сложность компилятора
Меня интересует сложность времени компилятора. Ясно, что это очень сложный вопрос, так как есть много компиляторов, опций компилятора и переменных, которые необходимо учитывать. В частности, меня интересует LLVM, но меня интересуют любые мысли людей или места, где можно начать исследования. Довольно Google, кажется, мало что дает на свет. Я предполагаю, …
54 compilers 

7
Является ли машина Тьюринга «по определению» самой мощной машиной?
Я согласен, что машина Тьюринга может решать «все возможные математические задачи». Но это потому, что это всего лишь машинное представление алгоритма: сначала сделайте это, затем сделайте это, наконец, выведите это. Я имею в виду все, что разрешимо, может быть представлено алгоритмом (потому что это точно определение «разрешимого»). Это просто тавтология. …

7
Почему процессор имеет 32 регистра?
Мне всегда было интересно, почему процессоры остановились на 32 регистрах. Это, безусловно, самая быстрая часть машины, почему бы просто не сделать процессоры большего размера с большим количеством регистров? Разве это не значит меньше идти в ОЗУ?

5
Как этот алгоритм сортировки Θ (n³), а не Θ (n²), в худшем случае?
Я только начал изучать структуры данных и алгоритмы, и мой ассистент дал нам следующий псевдокод для сортировки массива целых чисел: void F3() { for (int i = 1; i < n; i++) { if (A[i-1] > A[i]) { swap(i-1, i) i = 0 } } } Это может быть непонятно, …

4
Что такое хвостовая рекурсия?
Я знаю общую концепцию рекурсии. Я наткнулся на концепцию хвостовой рекурсии при изучении алгоритма быстрой сортировки. В этом видео о алгоритме быстрой сортировки из MIT в 18:30 секунд профессор говорит, что это хвостовой рекурсивный алгоритм. Мне не ясно, что на самом деле означает хвостовая рекурсия. Может ли кто-нибудь объяснить концепцию …

2
Как определить квантовые машины Тьюринга?
В квантовых вычислениях, какова эквивалентная модель машины Тьюринга? Мне совершенно ясно, как квантовые схемы могут быть построены из квантовых вентилей, но как мы можем определить квантовую машину Тьюринга (QTM), которая действительно может извлечь выгоду из квантовых эффектов, а именно, работать в многомерных системах?

3
Проблема ранца - NP-полная, несмотря на динамическое программирование?
Проблемы с рюкзаком легко решаются динамическим программированием. Динамическое программирование выполняется за полиномиальное время; вот почему мы делаем это, верно? Я читал, что это на самом деле NP-полная проблема, однако это означает, что решить проблему в полиномиальной задаче, вероятно, невозможно. Где моя ошибка?

2
Существуют ли субэкспоненциальные алгоритмы для NP-полных задач?
Существуют ли NP-полные задачи, которые доказали алгоритмы субэкспоненциального времени? Я спрашиваю об общих входных данных, я не говорю о конкретных особых случаях здесь. Под субэкспоненциальным я подразумеваю порядок роста над полиномами, но менее экспоненциального, например, .NжурналNnlog⁡nn^{\log n}

6
Хранение строкового секрета в (открытом) исходном коде
Я закончил разработку приложения для Android и собираюсь опубликовать его под лицензией GPL - я хочу, чтобы оно было с открытым исходным кодом. Однако природа приложения (игры) заключается в том, что оно задает загадки и кодирует ответы в строковом ресурсе. Я не могу опубликовать ответы! Мне сказали, чтобы посмотреть на …
50 arrays  security 

6
Почему некоторые игры np-complete?
Я прочитал статью в Википедии о « Списке проблем с NP-полнотой » и обнаружил, что такие игры, как Super Mario, Pokemon, Tetris или Candy Crusha Saga, являются NP-полными. Как я могу представить np-полноту игры? Ответы не должны быть слишком точными. Я просто хочу получить общее представление о том, что игры …

4
Почему полиномиальное время называется «эффективным»?
Почему в информатике любая сложность, которая в большинстве случаев является полиномиальной, считается эффективной? Для любого практического применения (a) алгоритмы со сложностью работают намного быстрее, чем алгоритмы, выполняющиеся во времени, скажем, , но первый считается неэффективным, а второй - эффективным. Где логика ?! n 80nlognnlog⁡nn^{\log n}n80n80n^{80} (a) Предположим, например, что число …

2
Что происходит с содержимым кеша при переключении контекста?
В многоядерном процессоре, что происходит с содержимым кэша ядра (скажем, L1), когда происходит переключение контекста в этом кэше? Зависит ли поведение от архитектуры или от всех производителей микросхем?

3
Почему бинарный поиск быстрее, чем троичный?
Поиск массив элементов с помощью бинарного поиска дублей, в худшем случае журнал 2 N итераций , потому что на каждом шаге мы подрезать половину нашего пространства поиска. Если бы вместо этого мы использовали «троичный поиск», мы бы вырезали две трети пространства поиска на каждой итерации, поэтому в худшем случае должно …

12
Как проверить номер с Бобом, не зная Еву?
Вы должны проверить, что ваш друг, Боб, имеет ваш правильный номер телефона, но вы не можете спросить его напрямую. Вы должны написать вопрос на карточке и передать его Еве, которая передаст карточку Бобу и вернет вам ответ. Что вы должны написать на карточке, помимо вопроса, чтобы Боб мог закодировать сообщение, …

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