【问题标题】:How can I make a two qubit "controlled rotate" in QCL如何在 QCL 中进行两个量子位“受控旋转”
【发布时间】:2013-07-30 00:30:30
【问题描述】:

我正在尝试用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

【问题讨论】:

    标签: quantum-computing qcl


    【解决方案1】:

    经过一番思考,我意识到我可以用复数系数来实现我想要的。这是我对CondRot 的新实现:

    operator CondRot(qureg r, qureg c) {
        qureg joined = r & c;
        H(r);
        V(pi / 2, joined);
        H(r);
    }
    

    请注意,结果是一个复杂的矩阵:

    [2   0   0   0
     0   2   0   0
     0   0   1+i 1-i
     0   0   1-i 1+i] * 1/2
    

    虽然这个矩阵包含复数值,但它的平方是 C-Not 门。此外,它在

    创建此实现后,我了解到我不一定要生成精确的矩阵才能获得我想要的结果。此外,我学会了拥抱相移门!

    【讨论】:

      猜你喜欢
      • 2013-11-14
      • 1970-01-01
      • 2011-05-07
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多