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

C++の練習を兼ねて, AtCoder Grand Contest 039 の 問題A (Connection and Disconnection) ~ 問題B (Graph Partition) を解いてみた.

■感想.
1. 問題A, Bは, 方針が見えなかったので, 解説を参考に実装して, ようやく, AC版に到達できた.
2. 二部グラフの性質を確認出来たので, 非常に良かったと思った.
3. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.

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

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

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

■参照サイト
AtCoder Grand Contest 039

Python(Cirq)について(5)

概要

  • Python の 練習を兼ねて, 量子コンピュータのフレームワーク(Google社)のチュートリアルを確認してみた
  • 動作環境は, Google Colaboratory で行った

感想

  1. チュートリアル(Cirq basics)が, とりあえず完了したので, 引き続きステップアップしていきたいと思う.
  2. 時間を見つけて, 今後も, チュートリアルの残りの部分を進めていこうと思う.

Decompositions

量子回路を, 分解することが出来るとのこと

  1. Decompositions の サンプル

  2. Decompositions の サンプル

  3. Decompositions の サンプル

Optimizers

MergeSingleQubitGatesオプティマイザは, 連続する単一量子ビット操作を実行し, それらを単一の PhasedXZ操作に, マージするとのこと

  1. Optimizers の サンプル

  2. Optimizers の サンプル

  3. Optimizers の サンプル

  4. Optimizers の サンプル

  5. Optimizers の サンプル

参照サイト

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

C++の練習を兼ねて, AtCoder Regular Contest 097 の 問題E (Sorted and Sorted) を解いてみた.

■感想.
1. 問題Eは, 方針が見えなかったので, 解説を参考に実装して, ようやく, AC版に到達できた.
2. 苦手な, dpの訓練が出来たので, 非常に良かったと思った.
3. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.

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

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

■参照サイト
AtCoder Regular Contest 097

Python(Cirq)について(4)

概要

  • Python の 練習を兼ねて, 量子コンピュータのフレームワーク(Google社)のチュートリアルを確認してみた
  • 動作環境は, Google Colaboratory で行った

感想

  1. 難しい用語が多いので, 消化不良にならないように, 地道に見ていこうと思う.
  2. 時間を見つけて, 今後も, チュートリアルの残りの部分を進めていこうと思う.

Using parameter sweeps

  • Cirq, SymPy, matplotlib の install.

  • Sweeping の サンプル①
  • Sweeping の サンプル②

  • Sweeping の サンプル③

  • Unitary matrices and decompositions

  • ユニタリ行列 の サンプル

参照サイト

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

C++の練習を兼ねて, AtCoder Regular Contest 082 の 問題F (Sandglass) を解いてみた.

■感想.
1. 問題Fは, 方針が見えなかったので, 解説を参考に実装して, ようやく, AC版に到達できた.
2. 個人的には, 不思議な感じがする問題で, 非常に面白く感じた.
3. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.

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

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

■参照サイト
AtCoder Regular Contest 082

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

C++の練習を兼ねて, AtCoder Beginner Contest 193 の 問題C (Unexpressed) ~ 問題D (Poker) を解いてみた.

■感想.
1. 久しぶりに, 解説見る前に, 解法の糸口が見つけることが出来たと思う.
2. 確率・組み合わせ関連は, 全般的に苦手なので, 今後も, 過去問を通して, 少しずつ理解を深めていきたいと思う.
3. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.

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

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

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

■参照サイト
キャディプログラミングコンテスト2021(AtCoder Beginner Contest 193)

Python(Cirq)について(3)

概要

  • Python の 練習を兼ねて, 量子コンピュータのフレームワーク(Google社)のチュートリアルを確認してみた
  • 動作環境は, Google Colaboratory で行った

感想

  1. チュートリアル時点で, すでに難しい概念が多く, だいぶ混乱したように思う.
  2. 難しい用語が多いので, 消化不良にならないように, 地道に見ていこうと思う.
  3. 時間を見つけて, 今後も, チュートリアルの残りの部分を進めていこうと思う.

Circuits and Devices

  • Foxtail

  • Bristlecone
  • Sycamore
  • デバイス(Sycamore)については, 使い方が良く分かってないため, ここでは詳細は確認できなかった.
    ※FSimGateなどの使い方を含めて理解する必要がありそう.


Simulation

  • 量子回路は, Simulation によって計算されるとのこと.
  • Simulation に, 20量子ビットの上限制約あるとのこと.
  • Bell State

  • Greenberger–Horne–Zeilinger state

  • 参照サイト

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

C++の練習を兼ねて, AtCoder Regular Contest 087 の 問題E (Prefix-free Game) を解いてみた.

■感想.
1. 問題Eは, 方針が見えなかったので, 解説を参考に実装して, ようやく, AC版に到達できた.
2. 普段使わない自己参照構造体による実装だったため, 実装に苦労したものの, Trie木という新しい知識が増えたので, 非常に良かったと思う.
3. 時間を見つけて, 引き続き, 過去問を振り返っていきたいと思う.

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

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

■参照サイト
AtCoder Regular Contest 087

Python(Cirq)について(2)

概要

  • Python の 練習を兼ねて, 量子コンピュータのフレームワーク(Google社)のチュートリアルを確認してみた
  • 動作環境は, Google Colaboratory で行った

感想

  1. 量子ゲートに, たくさん種類があるので, だいぶ混乱したように思う.
  2. 時間を見つけて, 今後も, チュートリアルの残りの部分を進めていこうと思う.

Gates and operations

  • Gates

  • Operation

Circuits and moments

  1. Hadamard

  2. SWAP

  3. Moment

  4. Pauli X

  5. Pauli Y

  6. Pauli Z

  7. Controlled Z

  8. Controlled NOT

  9. Controlled ISWAP

  10. Controlled TOFFOLI

  11. Controlled CCZ

参照サイト

Python(Cirq)について(1)

Python の 練習を兼ねて, 量子コンピュータのフレームワーク(Google社)のチュートリアルを確認してみた

動作環境は, Google Colaboratory で行った

■感想.
1. 量子論に関する知識がないので, Cirq を 操作しながら, 物理に関する知識も少しずつ確認していく必要があると感じた.
2. 時間を見つけて, 今後も, チュートリアルの残りの部分を進めていこうと思う.

■Cirq の install.

■qubits.
定義方法に, 以下の三パターンあるとのこと.
・cirq.NamedQubit
・cirq.LineQubit
・cirq.GridQubit

■hardware.
チュートリアル上, Foxtail が紹介されているが, 他のパターンも確認可能らしい.

■参照サイト
Cirq basics
Quantum computing hardware