$$ \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}} $$

Q# 入門していく(1)

問題

Problem - A1 - Codeforces

n 個の基底状態 |0> の量子ビットが与えられるので、すべてを重ね合わせ状態にしろという問題。

解法

アダマール (Hadamard) ゲートを通すだけ。

 

H( )でできる。以下を読むこと。

Q# standard libraries - prelude | Microsoft Docs

 コード

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

    operation Solve (qs : Qubit[]) : ()
    {
        body
        {
            let n = Length(qs);
            for (index in 0..(n-1)) {
                H(qs[index]);
            }
        }
    }
}