Что такое Машина Тьюринга?

Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException вообще.

См. также: A хороший список лучших практик

Я бы добавил, очень важно, хорошо использовать модификатор final. Использование "окончательной" модификатор, когда это применимо в Java

Сводка:

  1. Используйте модификатор final для обеспечения хорошей инициализации.
  2. Избегайте возврата null в методы, например, при возврате пустых коллекций.
  3. Использовать аннотации @NotNull и @Nullable
  4. Быстрое завершение работы и использование утверждений, чтобы избежать распространения нулевых объектов через все приложение, когда они не должен быть пустым.
  5. Сначала используйте значения с известным объектом: if("knownObject".equals(unknownObject)
  6. Предпочитают valueOf() поверх toString ().
  7. Используйте null safe StringUtils StringUtils.isEmpty(null).

46
задан John Flatness 4 March 2013 в 04:52
поделиться

9 ответов

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

Один пример чего-то, что можно было бы изучить Машины Тьюринга использования, Проблема остановки . В то время как этой проблемой является что-то вроде академического осуществления, это имеет легко материальные реальные последствия. Почему бы не записать отладчик, который просто скажет Вам, содержит ли Ваша программа какие-либо бесконечные циклы? Проблема остановки устанавливает, что решение этой проблемы для общего случая невозможно.

исследование Машин Тьюринга также предоставляет себя изучению языковых грамматик и классов этого, который ведет в разработку языка программирования. Термин "регулярные выражения" появляется, потому что они регулярная грамматика , и исследование этих грамматик (часть Теории Вычисления) скажет Вам больше о точно, что могут решить виды проблемных регулярных выражений и что они не могут. Например, традиционный синтаксис регулярного выражения не будет в состоянии решить следующую проблему: проанализируйте некоторый номер N символы во входе, и затем проанализируйте тот же номер N символа 'b'.

, Если Вы интересуетесь хорошим текстом об этом виде вещи, проверьте Введение в Теорию Вычисления Michael Sipser. Это хорошо.

59
ответ дан Parappa 26 November 2019 в 20:03
поделиться

Машина Тьюринга является теоретическим компьютером, изобретенным Alan Turing для служения в качестве идеализированной модели для математического вычисления, в основном это - простая форма компьютера, его составленного лента (лента бумаги), имеет голова , который может считать символы, записать новый символ на месте, и затем переместиться левый или правый.

Машина Тьюринга, как говорят, находится в определенном состояние , и затем программа является списком переходы , имея текущее состояние и символ под головой, что должно быть записано на ленте, что было бы следующим состоянием, и куда голова должна переместиться.

Вот Основная Машина Тьюринга , реализован в JavaScript...

И эскиз:

turing machine

32
ответ дан Filipp W. 26 November 2019 в 20:03
поделиться

Мой IBM PC - все, что я должен сделать свое вычисление!

Что-то, на что не указали другие: Ваш IBM PC Машина Тьюринга. Более точно это эквивалентно ему, в том смысле, что что-либо, что Ваш ПК может сделать, Машина Тьюринга, может сделать, и что-либо, что Машина Тьюринга может сделать, Ваш ПК может.

А именно, Машина Тьюринга модель вычисления , который полностью получает понятие исчисляемости, оставаясь простым рассуждать о, без всех определенных деталей архитектуры Вашего ПК.

(общепринятый) "тезис Черча-Тьюринга" утверждает, что каждое устройство или модель вычисления не более мощны, чем Машина Тьюринга. Так, много теоретических проблем (например, классы как P и NP, понятие "полиномиально-разового алгоритма", и так далее) официально указаны с точки зрения Машины Тьюринга, хотя, конечно, они могут быть адаптированы к другим моделям также. (Например, иногда может быть удобно думать о вычислении с точки зрения лямбда-исчисления или комбинаторной логике, или независимо от того, что... они - весь эквивалент в питании друг другу, и к Вашему IBM PC также.)

, Таким образом, там Вы идете: люди говорят о Машинах Тьюринга, потому что это - точный и полный указанный способ сказать, каков "компьютер", не имея необходимость описывать каждую деталь архитектуры ЦП, ее ограничений, и так далее.

28
ответ дан 2 revs, 2 users 94% 26 November 2019 в 20:03
поделиться

Существуют на самом деле примеры Машин Тьюринга по своей природе. А именно, рибосома , который переводит RNA в белки, реализует Машину Тьюринга.

Первый, некоторый фон:

  1. RNA состоит из строки нуклеотидов ("основания"), которые определяют буквы генетического алфавита.
  2. существует 4 основания в алфавите RNA - A, C, G, U.
  3. Основания направлены: условно концы называют пятиглавными и три - главный (5', 3')
  4. , основа А в строке RNA может притянуть основу на другой строке RNA в "антипараллельных дополнительных парах", где палки к U и C придерживаются G.
  5. основания объединены в группах 3 для формирования "кодонов" (слова).
  6. существует 64 возможных комбинации для кодонов (4^3).
  7. каждый кодон может соответствовать "антикодону". например, AUG <-> контроль учётных записей
  8. существует специальные молекулы поставщика услуг ("тРНК"), которые имеют конкретные антикодоны и присоединены к определенным аминокислотам (белки).

операция рибосомы проста:

  1. посвященные записи в "запускают кодон", который определяет "рамку считывания"
  2. , запись всегда продолжается в 5 '-> 3' направления
  3. , кодон под рамкой считывания соответствует определенной тРНК, содержащей определенную аминокислоту
  4. , кодон запуска всегда кодирует Метионин аминокислоты.
  5. новая аминокислота присоединена к растущему белку
  6. , кадр тогда совершенствует 3 основания к следующему кодону, и белок непрерывно расширяется
  7. после обнаружения с кодоном "остановки", перевод завершается, никакая аминокислота не присоединяется, и рибосома отделяет от mRNA.

, Как Вы видите, это - очень простая Машина Тьюринга, которая выполняет самую сложную операцию - сама природа!

26
ответ дан dar7yl 26 November 2019 в 20:03
поделиться

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

Мы заботимся о Машинах Тьюринга, потому что они помогают нам обнаружить то, что невозможно выполнить с реальными компьютерами (как Ваш IBM PC). Если для Машины Тьюринга невозможно выполнить конкретное вычисление (как решение Проблема остановки ), то это выдерживает обосновать, что для Вашего IBM PC невозможно выполнить то же самое вычисление.

6
ответ дан Ed Gonzalez 26 November 2019 в 20:03
поделиться

Почему был бы люди, которые разрабатывают заботу о самолетах о Братьях Райт или науку позади "лифта", который позволяет самолету с неподвижным крылом полететь?

Alan Turing хвалят как родительский элемент современного вычисления. Машина Тьюринга является предшественником всех современных компьютеров.

Теория Исчисляемости была моим самым твердым классом в колледже, но я рад, что взял его. Это заставило меня думать о вещах, которые я никогда не имел бы или думал бы о вещах способами, которыми я никогда не буду иметь, и те - хорошие вещи.

3
ответ дан sliderhouserules 26 November 2019 в 20:03
поделиться

Машина Тьюринга является абстрактной машиной, способной к вычислению.

Из Википедии:

Машины Тьюринга являются основными абстрактными управляющими символом устройствами, которые, несмотря на их простоту, могут быть адаптированы для моделирования логики любого компьютерного алгоритма. Они были описаны в 1936 Alan Turing. Машины Тьюринга не предназначаются как практическая вычислительная технология, но мысленный эксперимент о пределах механического вычисления. Таким образом они не были на самом деле созданы. Изучение их абстрактных свойств приводит ко многому пониманию теории сложности и информатики.

Машину Тьюринга А, которая в состоянии моделировать любую другую Машину Тьюринга, называют Универсальной Машиной Тьюринга (UTM, или просто универсальная машина). Более математически ориентированное определение с подобной "универсальной" природой было представлено Alonzo Church, чья работа над лямбда-исчислением, переплетенным с Turing в формальной теории вычисления, известного как тезис Черча-Тьюринга. Тезис указывает, что Машины Тьюринга действительно получают неофициальное понятие эффективного метода в логике и математике, и предоставляют точное определение алгоритма или 'механической процедуры'.

2
ответ дан Jeremy Ruten 26 November 2019 в 20:03
поделиться

Машина Тьюринга является абстрактной машиной, которая может воздействовать на последовательность данных и может изменить его собственное состояние, а также данные при работе, согласно некоторой логике.

Это - понятие, которое формирует основание алгоритмов, сохраненных программ и вычисления в целом. Это обеспечивает хорошее понимание и абстракции, если Вы имеете дело с алгоритмами, состояниями, данные и т.д.

Пища для размышления, для большинства.

2
ответ дан Abhishek Yadav 26 November 2019 в 20:03
поделиться

В дополнение к статье в Википедии Вы могли бы хотеть забрать книгу Аннотируемый Turing Charles Petzold. Снабженный субтитрами "Экскурсия через Историческую Статью Alan Turing об Исчисляемости и Машине Тьюринга", это включает полную бумагу, в которую врываются блоки с большим количеством дискурса по теме, включая историческую перспективу.

1
ответ дан Don Wakefield 26 November 2019 в 20:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: