Edited at

Q#で量子コンピューティングの世界へ踏み込む

More than 1 year has passed since last update.


高速な組み合わせ列挙に挑戦

において、100C9=1902231808400通りの組み合わせ列挙をしながら

特定の処理を行う挑戦をしていましたが、それを高速にできるアルゴリズムが

さっぱりわからないです。

「フカシギの数え方」のお姉さんの話も見飽きました。

これでいけるのかな。

https://www.ieice.org/jpn/books/kaishikiji/2012/201206.pdf

pythonでやれそうだが、いろんな数式がさっぱりわからない。

そしてついに、量子コンピューティングの世界へ辿り着きました。

量子アニーリングとやらで、ササッとやれるはずだと。たぶん。


Hello Q#

量子コンピューティングのプログラミングができるらしいQ#言語をかじってみる事にします。

量子力学については、私の中学の同級生が大学院で研究していました。

実は私も研究をやってたりしま・・ぅン。


環境構築(for Mac)

公式のインストール方法


.NET SDKをダウンロードしてインストール

https://www.microsoft.com/net/learn/get-started/macos


dotnetコマンドのシンボリックリンクを作成

ln -s /usr/local/share/dotnet/dotnet /usr/local/bin


Visual Studio Codeのプラグインをインストール


  • Microsoft Quantum Development Kit for Visual Studio Code

スクリーンショット 2018-03-28 23.25.59.png


Visual Studio Codeのcodeコマンドをインストール

スクリーンショット 2018-03-28 23.48.00.png


Q# Development Kit project templatesをインストール

dotnet new -i "Microsoft.Quantum.ProjectTemplates::0.2-*"


Microsoft Quantum Developer Kit Samples and Librariesをgit clone

git clone https://github.com/Microsoft/Quantum.git


QuantumをVisual Studio Codeで開いてサンプルを実行

cd Samples/Teleportation/

dotnet run

Round 0: Sent False, got False.
Teleportation successful!!

Round 1: Sent True, got True.
Teleportation successful!!

Round 2: Sent True, got True.
Teleportation successful!!

Round 3: Sent False, got False.
Teleportation successful!!

Round 4: Sent False, got False.
Teleportation successful!!

Round 5: Sent True, got True.
Teleportation successful!!

Round 6: Sent True, got True.
Teleportation successful!!

Round 7: Sent True, got True.
Teleportation successful!!

テレポーテーションのサンプルプログラムが動きました。

これは具体的にどういう処理の結果なのかというと、

つまり、量子テレポーテーションに関する処理を実行したという訳ですね!

もちろん内容はよくご存知の事でしょう。

・量子テレポーテーションの参考:量子プログラミング言語Q#の勉強 (4. 量子テレポーテーション)


いろんなサンプルを実行

スクリーンショット 2018-03-28 23.56.49.png

このようにサンプルがいくつもあるので、各ディレクトリに移動して、

dotnet run

すれば、サンプルを動かして実行結果をコンソール表示する事が出来ます。

まずはQubitの概念から学ぶとしよう。

今日はここまで。