Квантовый компьютер, просимулированный точно. Ставьте гейты, смотрите, как меняется вектор состояния, запускайте тысячу измерений — всё на этом телефоне.
Состояние n кубитов — это 2ⁿ комплексных чисел. Гейт не умножает матрицу 2ⁿ×2ⁿ — он проходит по парам амплитуд, отличающихся одним битом. Шестнадцать кубитов — 65 536 амплитуд, телефон делает гейт за миллисекунду. Двадцать — миллион; тридцать не поместятся в память. В этом зазоре — весь смысл строить настоящую машину.
Каждая готовая схема сходится с учебником до последней цифры: Гровер даёт sin²(5·asin(1/√8)) = 0.9453, телепортация сохраняет sin²(0.5), фазы Фурье идут ровно один круг. Двенадцать случайных схем до шести кубитов совпадают с эталоном на NumPy — построенным медленным способом, через произведения Кронекера, — до 10⁻¹⁵.
Симуляция, не квантовый компьютер. Амплитуды здесь точные и шума нет; настоящая машина отдаёт только гистограмму, и с шумом. Симуляция — это то, чем проверяют, что должна была ответить настоящая.