다음을 통해 공유


ApplyUnitary 작업

정규화된 이름: Std.Intrinsic.ApplyUnitary

operation ApplyUnitary(matrix : Complex[][], qubits : Qubit[]) : Unit

요약

지정된 단위 행렬을 지정된 큐비트에 적용합니다. 행렬은 런타임에 검사되어 셰이프가 정사각형이고 행렬 차원이 2 ^ Length(qubits). 이 작업은 시뮬레이터 전용이며 하드웨어에서 지원되지 않습니다.

입력

행렬

적용할 단위 행렬입니다.

큐비트

단위 행렬을 적용할 큐비트입니다.

예시

이렇게 하면 단위 행렬 표현을 사용하여 두 개의 큐비트 CNOT를 수행합니다.

import Std.Math.Complex;
use qs = Qubit[2];
let one = new Complex { Real = 1.0, Imag = 0.0 };
let zero = new Complex { Real = 0.0, Imag = 0.0 };
ApplyUnitary(
    [
        [one, zero, zero, zero],
        [zero, one, zero, zero],
        [zero, zero, zero, one],
        [zero, zero, one, zero]
    ],
    qs
);