The Question. Будущее | страница 24



Ячейка памяти обычного компьютера хранит один бит информации: либо нолик (конденсатор разряжен), либо единичку (конденсатор заряжен). 64 такие ячейки позволяют закодировать одно из 18 квинтиллионов (2 в степени 64) различных целых чисел.

Представьте, что одно число из этих 18 квинтиллионов является решением какой-то важной и сложной задачи, например описывает лекарство от рака. Часто такие задачи не имеют аналитического решения и решаются только полным перебором всех возможных вариантов. Если обычный компьютер может проверить миллиард (10>9) вариантов в секунду, то полный перебор займет примерно 585 лет.

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

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

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

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

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

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

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

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