Skip to content

Repository files navigation

QuantumCodeSnippets

量子コンピューティングの基礎的な概念を学ぶためのコードスニペット集です。

Visual Studio Codeでの利用について

このプロジェクトはVisual Studio Code(VS Code)で快適に実行・編集できます。

  • 拡張機能「Python」「Jupyter」をインストールすることで、ノートブックの作成・実行・デバッグが可能です。
  • VS Codeの「ノートブック」ビューで.ipynbファイルを直接開き、セルごとに実行・編集できます。
  • 仮想環境(venv)を利用する場合は、VS CodeのコマンドパレットからPythonインタープリターを選択してください。

推奨手順

  1. VS Codeでこのフォルダを開く
  2. 必要な拡張機能(Python, Jupyter)をインストール
  3. 仮想環境を有効化し、カーネルとして選択
  4. 各ノートブック(.ipynb)を開いてセルを実行

VS Code上での実行・編集は、学習や実験に非常に便利です。

概要

このリポジトリには、量子コンピューティングの基本的なアルゴリズムと概念を実装したJupyter Notebookが含まれています。Qiskitを使用して、量子回路の作成、シミュレーション、測定を行います。

1. 1量子ビットのHゲート → 50% 確率を確認するコード

  • Hadamardゲートの基本動作を学習
  • 量子重ね合わせ状態の生成
  • 測定による確率分布の確認(|0⟩と|1⟩が50%ずつ)

2. Bell状態を作成して測定するコード

  • 量子エンタングルメント(量子もつれ)の実装
  • Bell状態(最大エンタングル状態)の生成
  • 2量子ビット間の相関関係の確認

3. 量子テレポーテーションを実装&結果確認

  • 量子テレポーテーションプロトコルの実装
  • エンタングルメントと古典通信を使った量子状態の転送
  • 測定と条件付きゲート操作による状態の再構築

4. Deutsch-Jozsaアルゴリズム

  • 量子並列性を活用した関数の性質判定
  • 古典コンピュータより効率的な問題解決の実例
  • オラクルの実装と量子干渉の利用

5. Groverの探索(3〜4ビットくらいで)

  • 構造化されていないデータベースの探索アルゴリズム
  • 振幅増幅による探索の高速化
  • O(√N)の計算量での探索実現

6. Shorのアルゴリズムで素因数分解

  • 量子コンピュータの威力を示す代表的なアルゴリズム
  • 量子フーリエ変換を使った周期発見
  • RSA暗号に影響を与える実用的な量子アルゴリズム

7. 1から10000までの和を量子コンピュータで計算

  • 量子計算と古典計算の違いを体験
  • Qiskitを使った量子回路の作成例
  • 実用的な量子計算の限界と現実的なアプローチ

必要な環境

pip install qiskit qiskit-aer matplotlib numpy

使い方

  1. リポジトリをクローン:
git clone https://github.com/code4oyama/QuantumCodeSnippets.git
cd QuantumCodeSnippets
  1. 必要なパッケージをインストール:
pip install -r requirements.txt
  1. Jupyter Notebookを起動して、各ノートブックを実行:
jupyter notebook

学習の順序

量子コンピューティングを初めて学ぶ場合は、以下の順序で進めることをお勧めします:

  1. 1量子ビットのHゲート - 量子重ね合わせの基本
  2. Bell状態 - 量子エンタングルメントの理解
  3. 量子テレポーテーション - 複雑な量子プロトコルの実装
  4. Deutsch-Jozsaアルゴリズム - 量子アルゴリズムの基礎
  5. Groverの探索 - 量子探索アルゴリズムの実践
  6. Shorのアルゴリズム - 高度な量子アルゴリズムの理解

参考資料

ここのサンプルコードの転記元

ライセンス

本アプリは「独自ライセンス」に基づき公開しています。

ライセンス内容

  • 利用・複製・改変:自由に行えます。
  • 配布・再配布:禁止します。
  • 商用利用:禁止します。
  • 著作権表示:本アプリの著作権表示を削除しないでください。
  • 無保証:本アプリの利用によるいかなる損害も、作者は一切責任を負いません。

詳細説明

本アプリのソースコードおよび成果物は、個人または組織内での利用・複製・改変は許可しますが、 第三者への配布や再配布、または商用目的での利用・販売・公開は禁止します。 また、著作権表示および本ライセンス文は削除せず、必ず残してください。

ご不明点があれば、リポジトリ管理者までご連絡ください。

貢献

プルリクエストを歓迎します。大きな変更の場合は、まずissueを開いて変更内容を議論してください。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages