Информатика

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

6
Как мы можем предположить, что основные операции над числами занимают постоянное время?
Обычно в алгоритмах мы не заботимся о сравнении, сложении или вычитании чисел - мы предполагаем, что они выполняются за время . Например, мы предполагаем это, когда говорим, что сортировка на основе сравнения - это O ( n log n ) , но когда числа слишком велики, чтобы поместиться в регистры, …

9
Почему сложение происходит так же быстро, как побитовые операции в современных процессорах?
Я знаю, что побитовые операции выполняются очень быстро на современных процессорах, потому что они могут работать на 32 или 64 битах параллельно, поэтому побитовые операции занимают только один такт. Однако сложение - это сложная операция, которая состоит как минимум из одной и, возможно, до дюжины побитовых операций, поэтому я, естественно, …

9
Какие свойства языка программирования делают компиляцию невозможной?
Вопрос: «Некоторые свойства языка программирования могут требовать, чтобы единственный способ получить код, написанный на нем, выполнялся путем интерпретации. Другими словами, компиляция в собственный машинный код традиционного ЦП невозможна. Что это за свойства?» Составители: принципы и практика Параг Х. Дейва и Химаншу Б. Дейва (2 мая 2012 г.) Книга не дает …

4
(Когда) поиск по хеш-таблице O (1)?
Часто говорят, что поиск в хеш-таблице работает в постоянное время: вы вычисляете значение хеш-функции, которое дает вам индекс для поиска в массиве. Все же это игнорирует столкновения; в худшем случае каждый предмет попадает в одно и то же ведро, и время поиска становится линейным ( ).Θ(n)Θ(n)\Theta(n) Существуют ли условия для …

3
Как компьютеры отслеживают время?
Как компьютеры могут сообщать правильное время и дату каждый раз? Всякий раз, когда я закрываю компьютер (выключаю его), все соединения и процессы внутри останавливаются. Почему, когда я снова открываю компьютер, он показывает точное время? Разве компьютер не выключается полностью, когда я выключаю его? Есть ли в нем еще какие-то процессы? …

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

4
Какая новинка в MapReduce?
Несколько лет назад MapReduce был провозглашен революцией в распределенном программировании. Также были критики но в целом был восторженный ажиотаж. Он даже запатентован! [1] Название напоминает mapи о reduceфункциональном программировании, но когда я читаю (Википедия) Шаг отображения: главный узел принимает входные данные, разделяет их на более мелкие подзадачи и распределяет их …

2
Что такое коиндукция?
Я слышал о (структурной) индукции. Это позволяет вам строить конечные структуры из более мелких и дает вам доказательные принципы для рассуждений о таких структурах. Идея достаточно ясна. Но как насчет коиндукции? Как это работает? Как можно сказать что-либо убедительное о бесконечной структуре? Есть (по крайней мере) два угла для рассмотрения, …

1
Теоретико-языковое сравнение грамматик LL и LR
Люди часто говорят, что парсеры LR (k) более мощные, чем парсеры LL (k) . Эти заявления в большинстве случаев расплывчаты; в частности, следует ли сравнивать классы для фиксированного или объединения по всем ? Так как на самом деле ситуация? В частности, меня интересует, как вписывается LL (*).kkkkkk Насколько я знаю, …

6
Формальная проверка программы на практике
Как инженер-программист, я пишу много кода для промышленных продуктов. Относительно сложные вещи с классами, потоками, некоторыми проектными усилиями, но также и некоторыми компромиссами для производительности. Я много тестирую, и я устал от тестирования, поэтому я заинтересовался инструментами формального доказательства, такими как Coq, Isabelle ... Могу ли я использовать один из …

7
Законодательство NP-полное?
Я хотел бы знать, была ли какая-либо работа, связывающая правовой кодекс со сложностью. В частности, предположим, что у нас есть проблема решения «Учитывая этот закон и этот конкретный набор обстоятельств, виновен ли ответчик?» К какому классу сложности он относится? Есть результаты, которые доказали, что карточная игра Magic: the Gathering является …

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

10
Может ли динамический язык, такой как Ruby / Python, достичь производительности, подобной C / C ++?
Интересно, можно ли создавать компиляторы для динамических языков, таких как Ruby, чтобы они были похожи и сопоставимы по производительности с C / C ++? Из того, что я понимаю о компиляторах, возьмем, к примеру, Ruby, компиляция кода Ruby никогда не может быть эффективной, потому что способ, которым Ruby обрабатывает отражение, …

12
Почему компиляторы автоматически не вставляют освобождение?
Предполагается, что в таких языках, как C, программист вставляет вызовы бесплатно. Почему компилятор не делает это автоматически? Люди делают это в разумные сроки (игнорируя ошибки), поэтому это не невозможно. РЕДАКТИРОВАТЬ: Для дальнейшего использования, вот еще одна дискуссия, которая имеет интересный пример.

3
Алгоритм на месте для перемежения массива
Вам дан массив из 2 н2n2n элементов a1,2, ... ,N, б1, б2, … БNa1,a2,…,an,b1,b2,…bna_1, a_2, \dots, a_n, b_1, b_2, \dots b_n Задача состоит в том, чтобы чередовать массив, используя алгоритм на месте так, чтобы результирующий массив был похож на б1,1, б2,2, … , БN,Nb1,a1,b2,a2,…,bn,anb_1, a_1, b_2, a_2, \dots , b_n, …

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