Help us understand the problem. What is going on with this article?

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の概念から学ぶとしよう。
今日はここまで。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away