Microsoft Q# (qsharp)とは
Q# (キューシャープ) は、量子コンピューターのためにマイクロソフトが開発した、プログラミング言語です。古典コンピュータ上のホストプログラムから量子コンピュータ上で実行されるサブルーチンを呼び出す形で使用される量子プログラミング言語です。 Q#は量子シミュレーターが実装されており実際の量子コンピュータを使わなくても量子プログラミングを始めることができます。
Microsoft Quantum Katasとは
Quantum Katasはマイクロソフトが作成した量子コンピューティングとQ#プログラミングを学習するためのチュートリアルです。Github上で問題や解答、Jupyter notebookが公開されており、量子プログラミングに必要な基礎知識からQ#を使ったコーディングまで習得できるように構成されています。https://github.com/microsoft/QuantumKatas
The Quantum Katas are a series of self-paced tutorials to help you learn quantum computing and Q# programming.
QuantumKatasはTutorialやKatasなどから構成されており、歴史的にはKatasのほうが古いですが、Tutorial(チュートリアル)から始めることで、量子プログラミングに必要な数学的基礎知識から習得することができます。
チュートリアルのメニューは以下です。数学の基礎的な知識から入るのでこれから量子プログラミングを始めるとい自分のような超初心者にもちょうどいい感じです。逆に言うと数学的な基礎知識がないと現時点では量子プログラミングを学ぶのは難しいです。ただこれらの数学は普段は見慣れないのでとっつきにくいところもありますが、論理的にはそれほど難しいものではないので、順を追ってしっかり学習していけば問題ありません。
- Complex arithmetic. (複素数)
Learn about complex numbers and the mathematics required to work with quantum computing.
解答例・解説 - Linear algebra. (線型代数)
Learn about vectors and matrices used to represent quantum states and quantum operations.
解答例・解説(Part 1), (Part 2), (Part 3) - The qubit. (量子ビット)
Learn what a qubit is.
解説 - Single-qubit gates.(1量子ビットゲート)
Learn what a quantum gate is and about the most common single-qubit gates.
解答例・解説 - Multi-qubit systems.(複数量子ビットシステム)
Learn to represent multi-qubit systems.
解答例・解説 - Multi-qubit gates. (複数量子ビットゲート)
Learn about the most common multi-qubit gates.
解答例・解説 - Exploring Deutsch–Jozsa algorithm.
Learn to implement classical functions and equivalent quantum oracles, and compare the quantum solution to the Deutsch–Jozsa problem to a classical one.
解答例・解説 (Part 1), (Part 2), (Part 3), (Part 4) - Exploring Grover's search algorithm.
Learn more about Grover's search algorithm, picking up where the Grover's algorithm kata left off.
Quantum Katasを動かすための環境設定
Quantum Katasをonline動かす
一番手っ取り早いのが、こちらのリンクから動かすことです。ちょっと使いづづけてないとすぐにセッションが切れてしまいますが、環境を自分で用意しなくてよいので非常に便利です。
Quantum Katasを自分のJupyterで動かす
jupyterインストール&起動
Katasのチュートリアルを動かすためにはjupyter notebookが必要です。自分でJupyterを動かす場合は、こちらを参考にAnacondaをインストール
gitからクローン
自分で動かす場合、下記コマンドでQuantumKatasをJupyterから見えるフォルダにクローンしてきます。
git clone https://github.com/microsoft/QuantumKatas.git
チュートリアルは
QuantumKatas/tutorials
にあります。
ではこれから学習を始めていきたいと思います。