$$ \def\bra#1{\mathinner{\left\langle{#1}\right|}} \def\ket#1{\mathinner{\left|{#1}\right\rangle}} \def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}} $$

◇◇Microsoft Q# Coding Contest - Summer 2018 B4-Distinguish four 2-qubit states - 2◇◇


☆問題URL

https://codeforces.com/contest/1002/problem/B4

☆問題の概要

2桁の量子状態が与えられる。この状態が

のどれであるかを判定し、状態に対応する整数を返せ。

☆解法

前問と似ています。与えられた状態にアダマール・ゲート$H_0$を作用させると \begin{align*} H_0\ket{S_0}&=\frac12 \left( +\ket{+0}-\ket{+1}-\ket{-0}-\ket{-1} \right)\\ &=\frac1{2\sqrt{2}} \left( +\ket{00}+\ket{10}-\ket{01}-\ket{11}-\ket{00}+\ket{10}-\ket{01}+\ket{11} \right)\\ &=\frac1{\sqrt{2}} \left( +\ket{10}-\ket{01} \right) \end{align*} \begin{align*} H_0\ket{S_1}&=\frac12 \left( -\ket{+0}+\ket{+1}-\ket{-0}-\ket{-1} \right)\\ &=\frac1{2\sqrt{2}} \left( -\ket{00}-\ket{10}+\ket{01}+\ket{11}-\ket{00}+\ket{10}-\ket{01}+\ket{11} \right)\\ &=\frac1{\sqrt{2}} \left( -\ket{00}+\ket{11} \right) \end{align*} \begin{align*} H_0\ket{S_2}&=\frac12 \left( -\ket{+0}-\ket{+1}+\ket{-0}-\ket{-1} \right)\\ &=\frac1{2\sqrt{2}} \left( -\ket{00}-\ket{10}-\ket{01}-\ket{11}+\ket{00}-\ket{10}-\ket{01}+\ket{11} \right)\\ &=\frac1{\sqrt{2}} \left( -\ket{10}-\ket{01} \right) \end{align*} \begin{align*} H_0\ket{S_3}&=\frac12 \left( -\ket{+0}-\ket{+1}-\ket{-0}+\ket{-1} \right)\\ &=\frac1{2\sqrt{2}} \left( -\ket{00}-\ket{10}-\ket{01}-\ket{11}-\ket{00}+\ket{10}+\ket{01}-\ket{11} \right)\\ &=\frac1{\sqrt{2}} \left( -\ket{00}-\ket{11} \right) \end{align*}

となり、これは4つのBell状態に対応しています。Bell状態は識別可能であるので、これを使えば与えられた状態を識別することができます。

これで、この問題が解けました。

☆ソースコード

                
namespace Solution {
    open Microsoft.Quantum.Primitive;
    open Microsoft.Quantum.Canon;

    operation Solve (qs : Qubit[]) : Int
    {
        body
        {
            mutable ret=0;
            H(qs[0]);
            CNOT(qs[0],qs[1]);
            if(Measure([PauliX],[qs[0]])==Zero){
                set ret=ret+2;
            }
            if(M(qs[1])==Zero){
                set ret=ret+1;
            }
            return ret;
        }
    }
}
                
            

戻る