Part IV. Running the Algorithm
今回は全4部のうちの最終回Part 4です。Deutsch-JozsaのTutorialは4部に分かれています。
Part 1: 問題の定義と古典アルゴリズムについて
Part 2: 量子オラクルについて
Part 3: 量子アルゴリズムについて
Part 4: 実際にDeutsch-Jozsaを量子アルゴリズムで動かしてみる
Fact関数を使って実際に動かしてみる
ここまで来たら難しいことは何もなく、テストコードを書いて動かすだけです。balancedの関数は期待値をfalseにしてメッセージを修正する必要があります。
open Microsoft.Quantum.Diagnostics; operation Run_DeutschJozsaAlgorithm () : String { // You can use Fact function to check that the return value of DeutschJozsaAlgorithm operation matches the expected value. // Uncomment the next line to run it. Fact(DeutschJozsaAlgorithm(4, PhaseOracle_Zero) == true, "f(x) = 0 not identified as constant"); // Run the algorithm for the rest of the oracles Fact(DeutschJozsaAlgorithm(4, PhaseOracle_One) == true, "f(x) = 0 not identified as constant"); Fact(DeutschJozsaAlgorithm(4, PhaseOracle_Xmod2) == false, "f(x) = 1 not identified as balanced"); Fact(DeutschJozsaAlgorithm(4, PhaseOracle_OddNumberOfOnes) == false, "f(x) = 1 not identified as balanced"); Fact(DeutschJozsaAlgorithm(4, PhaseOracle_MostSignificantBit) == false, "f(x) = 1 not identified as balanced"); // If all tests pass, report success! return "Success!"; }