
量子コンピューティングを試せるアプリ
今週の月曜日のこと、IPA 未踏ターゲットからこんなお知らせが。
『量子コンピューティングの魅力を体験・学習できるサービス「QCoder」がリリースされました。』
- QCoder
- https://www.qcoder.jp/
例によって、一般の方には「?」というような内容だと思います。
このアプリを簡単に説明すると、『未来型のコンピュータのプログラミングを体験できるアプリ』といったところです。
『未来型のコンピュータ』というところがミソで、今私たちが使っているコンピュータとは相当異なる仕組みで動いています。
当然、プログラミングの仕方も全く違います。
例えば、今私たちが使っているコンピュータでは、「1ビット」というのは『「0」か「1」のどちらか』です。
ですが、この量子コンピューティングの世界では、「1ビット」というのは『確率αで「0」、確率βで「1」』です。
(厳密には、「1量子ビット」と呼びます)
何言ってんだコイツ状態ですよね。
これを正しく理解するには、「行列」という数学の知識が多少なりとも必要になります。
イメージで言うと、今のプログラムでは、変数 X があったら、『それは「0」か「1」かの、どちらかだ』と考えてプログラミングします。
一方の量子コンピューティングでは、変数 X があったら、『それは「0」でもあるし「1」でもある』と考えてプログラミングします。
なので、変数 X に何か操作を行ったら、『確率δで「0」、確率εで「1」になるだろう』などと考えながらやっていきます。
『今のプログラムで「場合分け」をしていたものを、同時に考えるようになった』とでも言えばよいでしょうか。
で、話を戻して、そんな量子コンピューティングを体験できるアプリができましたよ、と。
今はまだ「例題」に対してコードを書いて、正解か不正解かしか分かりません。
(そもそも、競技プログラミングがベースなので、いかに素早く最適解を書くか、という一種のスポーツです)
が、ライブラリ自体は入っているので、様々な処理を行うことはできます。
ライブラリのドキュメント(仕様書)を読みながらやると、中々興味深くて使ってみたくなります。
ちなみに、今週の土曜日(2024/01/20)に競技プログラミングの大会があるようです。
私は残念ながら予定が入っているので参加できないのですが、興味のある方はチャレンジしてみるのも良いと思います。
ちなみに、余談ですが、量子コンピューティングについては、株式会社NTTデータ数理システムさんという会社のサイトに分かりやすい説明がありました。
- 株式会社NTTデータ数理システム
- https://www.msiism.jp/article/gate-based-quantum-computer.html
こちらを参考にすれば、先の「QCoder」の例題は比較的スムーズに理解できるかと思います。
それでは、また面白いオモチャを知ってしまった、山本慎一郎でした。