Преобразования, выполняемые над двумя кубитами, реализуют тот или иной вид взаимодействия между ними. Они производят в том числе запутанные состояния. Например, из состояния двух кубитов «(А плюс 2 Б, А)» (где перед запятой указано состояние первого кубита, а после запятой – второго) можно сделать состояние «(А, А) плюс 2 (Б, Б)», используя уже встречавшееся нам (и вообще очень популярное) преобразование CNOT. Это вид взаимодействия, при котором состояние первого кубита влияет на состояние второго: если первый – в состоянии «А», то со вторым ничего не происходит, но если первый – в состоянии «Б», то второй меняет свое «А» на «Б», а свое «Б» на «А».
Как и в случае с телепортацией, основа успеха в том, что
О числах, которые выражали бы интересующий нас ответ, необходимо позаботиться отдельно. Они кодируются тем, что
Десять кубитов позволяют закодировать числа от нуля до 1023, что все еще совсем не много, но сто кубитов – от нуля до числа, в котором уже 31 знак, и оно несколько больше тысячи миллиардов миллиардов миллиардов. Тысяча кубитов отвечает
Каждый кубит превращается в обычный бит (принимающий одно из двух значений А и Б) в результате финального измерения. Волновая функция со всеми ее внутренними числами тогда погибает, потому что каждый кубит вынужден «определиться», кем ему стать: состоянием «А» или «Б». «Возникновение чисел» в конце квантового вычисления, таким образом, – работа многократно нам уже встречавшегося коллапса волновой функции (который, как всегда, или постулируется без пояснений, или же объясняется тем или иным образом, как мы видим из других глав). Если угодно, коллапс превращает кубиты в биты.
Но что с индетерминизмом? Мы ведь не властны над результатами измерения: состояние «(А, А) плюс 2 (Б, Б)», например, может показать при измерении результат АА (число 0), а может и ББ (число 3). Заметим, впрочем, что в данном случае измерение заведомо
Этот способ действий и применяется в настоящих квантовых вычислениях: нужно добиться, чтобы одно состояние – скажем, «Б, А, А, А, Б, А, Б, Б, Б, А, Б, А, А, А, А, Б, Б, А, А, А, Б, Б, Б, Б, А, А», если у вас 26 кубитов, – кодирующее правильный ответ (36 603 452 в данном случае), оказалось выделено среди всех остальных: выделено сопровождающим его
Изобрести последовательность преобразований, которая это обеспечивает, и означает придумать квантовый алгоритм для решения какой-либо задачи. Никаких готовых рецептов для создания квантовых алгоритмов нет, это скорее искусство; тем не менее некоторое количество квантовых алгоритмов придумать удалось, а главная причина внимания к ним в том, что при увеличении объема данных они ведут себя иначе, чем классические алгоритмы.