Freigeben über


ApplyUnitary-Vorgang

Vollqualifizierter Name: Std.Intrinsic.ApplyUnitary

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

Zusammenfassung

Wendet die angegebene einheitliche Matrix auf die angegebenen Qubits an. Die Matrix wird zur Laufzeit überprüft, um sicherzustellen, dass es sich um ein Quadrat handelt und dass die Matrixabmessungen 2 ^ Length(qubits)werden. Dieser Vorgang ist nur Simulator und wird auf Hardware nicht unterstützt.

Eingabe

Matrix

Die anzuwendende Einheitsmatrix.

Qubits

Die Qubits, auf die die Einheitsmatrix angewendet werden soll.

Beispiel

Dadurch wird eine zwei Qubit-CNOT mit der Einheitsmatrixdarstellung ausgeführt:

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
);