動機
現在の流行は機械学習だと思っていて,待を歩くと殆どの人がAndrewNgの機械学習講座をやっていて, PRML, Convex Optimization, MurphyのML本, GoodfellowのDL本, 渡辺ベイズ, 園田D論, MLPシリーズ, ハムかず本, (敬称略)etc...等を読んでいるような印象がありますが
逆張りをしていきたいので,まだ流行していなそうなQuantum Computingやっていきたいなと思いました
最近Brilliant(米国の学習サイト,Courseraっぽい)でMicrosoftとAlphabetが協力した講座brilliant.orgのQuantum-Computingが出たのでそれをやっていきます
Quantum Computingブームが来たとき,いずれはこの講義もスタンダードになるんじゃないかと個人的には思います(まだ途中までしかやってませんが)
章ごとにQuizがあって、その後詳解や参照が表示される形式です
Courseraとの違いは無期限で回数無制限でテストを受け直せるところです
この講座だとおそらくQ#を手元にインストールする必要はないのですが(GUIで擬似プログラミングできる機能が用意されてしまっているので),追試してみたいので入れてみました
やってみる
Q#の公式を見ると,まずは .NET Core SDK (2.1 or later)を入れろということなので入れます
https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install
このページの選択でUbuntu18.04を選んでそのままコード打っていく
Register Microsoft key and feed
wget -q https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb
sudo add-apt-repository universe sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install dotnet-sdk-2.2
これでdotnetのインストールはできたので
再びQ#の公式を見て
dotnet tool install -g Microsoft.Quantum.IQSharp
インストール完了,アプデは次のコマンドらしい
dotnet tool update -g Microsoft.Quantum.IQSharp
インストール済みでも再インストールされるらしい,次のメッセが出る
dotnet tool update -g Microsoft.Quantum.IQSharp ツール 'microsoft.quantum.iqsharp' が安定した最新バージョン (バージョン '0.7.1905.3109') で再インストールされました。
jupyterカーネルに追加
公式だと
dotnet iqsharp install
とあるが,iqsharpが見つからないとエラーが出た
公式チュートリアルのDockerfileから見つけた次のコマンドで追加できた
dotnet iqsharp install --user --path-to-tool="$(which dotnet-iqsharp)"
Q#の動作確認
MSのQuantumの公式レポをクローンして遊びます
git clone git@github.com:microsoft/Quantum.git cd /Quantum/Samples/src/Teleportation dotnet build ビルドに成功しました。 │ 0 個の警告 │ 0 エラー │ │ 経過時間 00:00:22.75
build終わったことを確認して
dotnet run
警告なく終了!
Q#の特徴
Q#公式
によると,C#っぽく;
,{}
を使っていてif
もC#っぽいとのこと
独特なのはデフォルトだと値がimmutableで,letでmutableに