Python(Qiskit)について(18)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, 学習サイト上 で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 前回の続きを確認してみた, より複雑なパターンになるが, 非常に面白く感じた.

Hello Qiskitゲーム

  1. パズル6
  2. [Choose gate] で, [NOT]クリック.

     

    [Choose bit] で, [the bit on the right]クリック.

     

    [Make it happen!] で, [Apply Operation]クリック.

     

    [Choose gate] で, [CNOT]クリック.

     

    [Choose bit] で, [the bit on the right]クリック.

     

    [Make it happen!] で, [Apply Operation]クリック.

     

    [結果]
    真ん中の円が, になった.
    [Success!] が 表示されるので, 操作手順が正しかったことを確認できる.

     

    [参考(初期状態を, Zゲートに変更した場合)]

    [Choose gate] で, [NOT]クリック.

     

    [Choose bit] で, [the bit on the left]クリック.

     

    [Make it happen!] で, [Apply Operation]クリック.

     

    [結果]
    真ん中の円が, になった.
    [Success!] が 表示されるので, 操作手順が正しかったことを確認できる.

     


  3. パズル7
  4. [Choose gate] で, [CNOT]クリック.

     

    [Choose bit] で, [the bit on the left]クリック.

     

    [Make it happen!] で, [Apply Operation]クリック.

     

    [Choose gate] で, [CNOT]クリック.

     

    [Choose bit] で, [the bit on the right]クリック.

     

    [Make it happen!] で, [Apply Operation]クリック.

     

    [Choose gate] で, [NOT]クリック.

     

    [Choose bit] で, [the bit on the right]クリック.

     

    [Make it happen!] で, [Apply Operation]クリック.

     

    [結果]
    真ん中の円が, になった.
    [Success!] が 表示されるので, 操作手順が正しかったことを確認できる.

     


参照サイト

C++ の動作確認をしてみた(640)

C++の練習を兼ねて, AtCoder Regular Contest 133 の 問題C (Row Column Sums) を解いてみた.

■感想.
1. 問題Cは, 方針が見えなかったので, 解説を参考に実装して, AC版に到達できたと思う.
2. 個人的には, 解説のロジックで, 計算できてしまうことが, 非常に不思議な印象を受けた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Regular Contest 133 解説 の 各リンク を ご覧下さい.

■C++版プログラム(問題C/AC版).

■参照サイト
AtCoder Regular Contest 133

Python(Qiskit)について(17)

概要

  • Qiskit について, 学習サイト の サンプルプログラムを動かしてみた.
  • 動作環境は, 学習サイト上 で行った
  • 実行プログラム, 解説は, 下記の参照サイトをご覧ください

感想

  1. 個人的には, 視覚的に, 量子ビット, 量子ゲート を 確認出来るため, 非常に面白く感じた.
  2. さらに, 学習サイト上で, プログラムを編集して, 実行できるので, 非常に便利に感じた.

Hello Qiskitゲーム

  1. パズル1
  2. [Choose gate] で, [NOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the only bit]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [一回目結果(NOTゲート)]

     

     

     

     

     

     

    手順を略して,
    [二回目結果(NOTゲート)]

     

     

     

     

     

     

    [三回目結果(NOTゲート)]
    [Success!] が 表示されるので, 操作手順が正しかったか確認できる.

     

     

     

     

     


  3. パズル2
  4. [Choose gate] で, [NOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the right]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(NOTゲート)]

     

     

     

     

     

     

    [参考(ANDゲート)]
    ちなみに, AND を 指定すると, もう一方のビットは, オン(黒 ⇒ 白)にならないことも確認できる.

    と プログラムを修正している

     

     

     

     

     

     


  5. パズル3
  6. [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the right]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(CNOTゲート)]
    右側のビットがオンになったことを確認出来る

     

     

     

     

     

     

    [参考(左側のビットをオンにするには?)]

    [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the left]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(CNOTゲート)]
    左側のビットがオンになったことを確認出来る

     

     

     

     

     

     


  7. パズル4
  8. [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the right]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the left]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(CNOTゲート)]
    左側のビットがオフ, 右側のビットがオンになったことを確認出来る

     

     

     

     

     

     

    [参考(左側のビットをオン, 右側のビットをオフにするには?)]

    [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the left]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the right]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(CNOTゲート)]
    左側のビットがオン, 右側のビットがオフになったことを確認出来る

     

     

     

     

     

     


  9. パズル5
  10. [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the right]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(CNOTゲート)]
    右側のビットがランダムになることを確認出来る

     

     

     

     

     

     

    [参考(左側のビットをランダムにするには?)]

    [Choose gate] で, [CNOT]クリック.

     

     

     

     

     

    [Choose bit] で, [the bit on the left]クリック.

     

     

     

     

     

    [Make it happen!] で, [Apply Operation]クリック.

     

     

     

     

     

    [結果(CNOTゲート)]
    左側のビットがランダムになることを確認出来る

     

     

     

     

     


参照サイト

C++ の動作確認をしてみた(639)

C++の練習を兼ねて, AtCoder Beginner Contest 236 の 問題E (Average and Median) を解いてみた.

■感想.
1. 問題Eは, 方針が見えなかったので, 解説を参考に実装して, AC版に到達できたと思う.
2. 個人的には, 二分探索の復習, および, 苦手な動的計画法の訓練を積めたので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Beginner Contest 236 解説 の 各リンク を ご覧下さい.

■C++版プログラム(問題E/AC版).

■参照サイト
AtCoder Beginner Contest 236

C++ の動作確認をしてみた(638)

C++の練習を兼ねて, AtCoder Beginner Contest 236 の 問題F (Spices) を解いてみた.

■感想.
1. 問題Fは, 方針が見えなかったので, 解説を参考に実装して, AC版に到達できたと思う.
2. 個人的には, 解説のロジックで, 計算できることについて, 非常に, 面白く感じた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Beginner Contest 236 解説 の 各リンク を ご覧下さい.

■C++版プログラム(問題F/AC版).

■参照サイト
AtCoder Beginner Contest 236

C++ の動作確認をしてみた(637)

C++の練習を兼ねて, AtCoder Beginner Contest 236 の 問題C (Route Map) ~ 問題D (Dance) を解いてみた.

■感想.
1. 問題Dは, 計算量を絞り込む方針が見えなかったので, 解説を参考に実装して, AC版に到達できたと思う.
2. 問題Dは, 何度も提出する羽目になったが, WA原因が, 入力情報を保存する配列サイズが, 小さすぎて, エラーとなっていることが判明し, 今後の教訓となったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Beginner Contest 236 解説 の 各リンク を ご覧下さい.

■C++版プログラム(問題C/AC版).

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 236

C++ の動作確認をしてみた(636)

C++の練習を兼ねて, JOIG 2021/2022 本選 過去問 の 問題D (いちご 2 (Strawberry 2)) を解いてみた.

■感想.
1. 問題Dは, 方針を絞り込めたので, AC版に到達できたので十分だと思う.
2. 個人的には, 数え上げの方法に, std::map を使う方針が, 面白く感じた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト JOIG 2021/2022 本選 過去問 解説 の 各リンク を ご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
JOIG 2021/2022 本選 過去問

C++ の動作確認をしてみた(635)

C++の練習を兼ねて, AtCoder Regular Contest 133 の 問題A (Erase by Value) ~ 問題B (Dividing Subsequence) を解いてみた.

■感想.
1. 問題Bは, 方針が見えなかったので, 解説を参考に, AC版に到達できた.
2. LIS(Longest increase subsequence) の 応用版(追加条件) を, 確認することができたので, 非常に良かったと思う.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Regular Contest 133 解説 の 各リンク を ご覧下さい.

■C++版プログラム(問題A/AC版).

■C++版プログラム(問題B/AC版).

■参照サイト
AtCoder Regular Contest 133
060 – Chimera

C++ の動作確認をしてみた(634)

C++の練習を兼ねて, AtCoder Beginner Contest 037 の 問題D (経路) を解いてみた.

■感想.
1. 問題Dは, 方針が見えなかったので, 解説を参考に, AC版に到達できた.
2. 本問は, メモ化再帰の例題として, 学習した内容である.
相変わらず, メモ化再帰の本質が見えてないため, 理解が進むまでは, 本問を, 典型的な例題として, いったん丸暗記の方針とした.
とはいえ, メモ化再帰は, 以下の構成要素(ロジック)が含まれていると, とりあえず理解した.
① 第一段階 … メモ化が終わっているか確認する作業, 再帰処理の終了条件として使用する.
② 第二段階 … 再帰処理の実装, 本問では, “経路数” を知りたいので, 経路数 を 集計する実装が必要.
③ 第三段階 … メモ化が終わってないため, メモ化の作業を追加, なお, 本問では, メモ化の対象は, “経路数” と 理解.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Beginner Contest 037 解説 を ご覧下さい.

■C++版プログラム(問題D/AC版).

■参照サイト
AtCoder Beginner Contest 037

C++ の動作確認をしてみた(633)

C++の練習を兼ねて, AtCoder Regular Contest 103 の 問題E (Tr/ee) を解いてみた.

■感想.
1. 問題Eは, 方針が見えなかったので, 解説を参考に, AC版に到達できた.
2. 個人的には, 特殊な性質を持つグラフを抽出するロジックが, 面白いと感じた.
3. 引き続き, 時間を見つけて, 過去問の学習を進めていきたいと思う.

本家のサイト AtCoder Regular Contest 103 解説 を ご覧下さい.

■C++版プログラム(問題E/AC版).

■参照サイト
AtCoder Regular Contest 103