Коллектив авторов

The Question. Будущее


Скачать книгу

только полным перебором всех возможных вариантов. Если обычный компьютер может проверить миллиард (109) вариантов в секунду, то полный перебор займет примерно 585 лет.

      Ячейка памяти квантового компьютера, которая называется кубит, может одновременно находиться в обоих состояниях: с некоторой вероятностью нолик, с некоторой вероятностью единичка. Соответственно, 64 таких кубита могут одновременно кодировать каждое из 18 квинтиллионов чисел от 0 до 264 – 1.

      Программа для такого квантового компьютера может одновременно проверить все 18 квинтиллионов вариантов. По большому счету квантовому компьютеру из 64 кубитов нет разницы, перебрать миллиард вариантов или 18 квинтиллионов. Благодаря законам квантовой физики он делает это за одно и то же время.

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

      Как написали первую программу без программы для написания программ?

Артем Бакулинпрограммист, Deutsche Bank

      Если коротко, то новые языки программирования и другие инструменты создаются на основе уже существующих. Полная аналогия с другими областями техники, где новые станки и материалы позволяют создавать все более совершенные станки и материалы. Как все станки начались с палки-копалки и кремневого рубила, так и языки программирования начались с перфокарт и нечитаемого двоичного кода.

      Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL», записывается так: 0000 0100 0000 0101

      Здесь 0000 0100 – код операции «прибавить число к регистру AL», а 0000 0101 – двоичное представление числа 5.

      На заре индустрии для ввода программы в компьютер нужно было либо перещелкнуть сотни тумблеров на специальной панели (тумблер ВЫКЛ. – нолик, тумблер ВКЛ. – единичка), либо пробить дырочки в специальной перфокарте. Ошиблись в одной ячейке из тысячи – программа будет работать неправильно, будьте добры сами найти ошибку методом пристального взгляда.

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

      Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL», записывается на языке ассемблера x86 так:

      ADD AL, 5

      Думаю, вы согласитесь, что это все-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя