我正在尝试用QCL(量子计算机语言)创建一个程序,该程序随机生成 6 个状态中的 1 个(即滚模程序)。在实现这一点时,我发现自己需要编写一个函数,如下所示:
operator CondRot(qureg r, qureg c) {
qureg newReg = r & c;
complex half;
half = 1/sqrt(2);
Matrix4x4(1, 0, 0, 0, // <00|
0, 1, 0, 0, // <01|
0, 0, half, -half, // <10|
0, 0, half, half, // <11|
newReg);
}
我很失望,我发现自己需要明确地声明一个酉矩阵才能实现我的目标。我已经了解到,仅使用 Hadamard 矩阵和受控 V 矩阵,我应该能够生成我想要的任何酉矩阵。但是,如何做到这一点并不是很明显。你们中有人知道我如何在operator
不明确说明矩阵的情况下重写它吗?