どうも、観測されるまでは半分の確率で生存している吟遊詩人です。
なんか一昨日当たりTLにやたらと”量子コンピュータ”という単語がどんぶらこっこすーこっこと流れてきました。
どうやらGoogleが量子コンピュータの実用化に向けた研究成果の発表をした以下のニュースがきっかけのようですね。

スパコンで1万年かかる計算を3分20秒で? 量子コンピューター
2019年10月24日 20時27分
https://www3.nhk.or.jp/news/html/20191024/k10012146191000.html
ええ!?1万年かかる計算を3分20秒で?できらぁ!!
ということで、なんだかすごいですよね。
まあでもなんか、量子?力学?シュレディンガー方程式?猫?猫が入ってるの?この中の中に?って、なんかよくわからんって人も多いと思います。
きっと皆さんもこんな疑問を持っておられるんじゃないでしょうか↓↓↓
- 量子コンピューターと普通のコンピュータって何が違うの?
- 量子コンピュータによって私たちの生活はどう変わるの?
- なんで量子コンピュータができると仮想通貨の価格が下がるの?
- なんでシャミ子が悪いんだよって原作では言ってないのに言ったことにされているの?
- 人生の意味って何?
- なんで戦争はなくならないの?
- なぜ人は生まれながらにして業’カルマ’を背負っているの?
- 俺は来月からどう暮らしていけばいい?
etc…いろいろな疑問があると思いますが、本日は上から3つまでの疑問に対して解説していきたいと思います。
(なんか書いてたら長くなりそうだったので、今回は一番上の解説だけにします。)
量子コンピューターと普通のコンピュータって何が違うの?

普通のコンピュータの仕組み
量子コンピュータと普通のコンピュータの違いを理解するためには、まず普通のコンピュータの仕組みから理解する必要があります。
現在我々が通常使用するコンピュータはノイマン型コンピュータと呼ばれるものです。
このノイマン型コンピュータに値や命令をするわけですが、この時に渡せる値というのは基本的に”0(off)”か”1(on)”の2つだけです。
(半導体(トランジスタ)に電気を流して ”1(on)” か ”0(off)” のどちらかの値を渡すわけです。基本的にはモールス信号と同じです。)
「は?ふざけんなよ。じゃあ2以上の計算はどうするんだよ?」
と思われた方もいると思いますが、安心してください。2は「10」とすれば解決します。このように全ての数を”0″と”1”で表す方法を2進数と呼びます。
例えばパソコンでは”2+3=5”という式は”10+11=101″と表されるわけです。(本当は”+”という命令も0と1で表さないといけないです。例えば”+”を111とすれば、 ”2+3” は”10 111 11″となります。)
すべての数を0と1で表すことができ、またすべての命令も0と1で表すことができるので、原理的な問題はありません。あとは時間的な問題が残ります。
先ほどの “10+11=101” という計算を見ると、3という数字は2桁で表すことができていますが、5という数字は101と3桁必要になっています。
一度に計算できる桁数が大きくなるほど、より大きな数の計算が短時間でできるようになるわけです。よく32ビットOSとか64ビットOSとか聞くと思いますが、あれは一度に計算できる桁数(正確には命令長)が32桁か64桁かという意味です。(ニンテンドー64も一度に64桁の計算ができるため64という名前なんですね。)
一度に使える桁を増やすためにどんどんトランジスタを小さくしていっぱい集めて、集積回路を作るわけですね。
ここまでをまとめますと、
- 普通のコンピュータで扱えるのは”0″か”1”だけ
- 大きな数字や命令は、0と1の組み合わせで表現する
- 一度に扱える0と1の桁数が増えるほど高速で計算できる(高性能のコンピュータである)
- ニンテンドー64は神ハード
量子コンピュータの仕組み
「一度に扱える桁数が多いほど高性能のパソコン」
ということは、
「じゃあ、量子コンピュータはさぞかし膨大な桁数を一度に扱えるのね」
と思う方もおられるかもしれませんが、そうではありません。
量子コンピュータで扱える桁数は現在のところ普通のコンピュータ以下です。
量子コンピュータが普通のコンピュータと違うところは、普通のコンピュータが ”0(off)”か”1(on)” しか扱えないところを、量子コンピュータは
”0(off)かも知れないし1(on)かも知れないね~あ~見てみないとわからんわ~”
という値が使えるということです。
”0(off)かも知れないし1(on)かも知れないね~あ~見てみないとわからんわ~”
という値のことを”量子ビット”と呼びます。
量子ビットってなに?
量子ビットの説明のために量子力学の歴史をざっとおさらいすると、
・まず光は波だと思われてた頃に、アインシュタインが光は波だけじゃなくて粒子の性質を持つことを発見します。(光電効果)
・次にド・ブロイが「光が粒子なら、物質(電子)も波じゃね?」と言い出します。(ド・ブロイ波)
・2重スリット実験によって電子が波の性質を持つことが証明されます(二重スリット実験)
この2重スリット実験ですが、1個ずつ飛ばした電子が、あたかも”2つのスリットを通る波”のように振る舞い、干渉縞を作るという実験です。
電子が粒子ならば2つのスリットの片方しか通れるわけはありませんので、電子は波だということになります。つまり、電子は”右のスリットを通った電子”という状態と”左のスリットを通った電子”という状態の”重ね合わせ”の状態になっているわけです。このような確率の”重ね合わせ”の状態というのは我々の通常の感覚では理解しがたいものですが、”極低温状態”や”ミクロ (電子程度の大きさ) な世界”といった量子力学のテリトリーでは往々にして出てくる現象です。
このような”重ね合わせ”の状態は非常にデリケートなものなので、簡単に崩れます。例えば先ほどの 2重スリット実験 では、電子が 右のスリット を通ったか左のスリットを通ったか観測すると、両方の確率の重ね合わせがなくなってしまうため、干渉縞が消えます。このように観測によって重ね合わせを無くしてしまうことを”波束の収束”と言います。
この”重ね合わせ”についてよく出てくる例は、シュレディンガーの猫と呼ばれるものです。

蓋のある密閉状態の箱を用意し、この中に1匹の猫を入れる。箱の中には他に、少量の放射性物質と、ガイガーカウンター、それに反応する青酸ガスの発生装置がある。放射性物質は1時間の内に原子崩壊する可能性が50%であり、もしも崩壊した場合は青酸ガスが発生して猫は死ぬ。逆に原子崩壊しなければ毒ガスは発生せず、猫が死ぬことはない。1時間後、果たして箱の中の猫は生きているか死んでいるか。
シュレディンガーの猫
シュレディンガーの猫も”生きている状態”と”死んでいる状態”の”重ね合わせ”の状態になるという皮肉めいた話です。
長くなりましたが、量子ビットもこの”重ね合わせ”の性質を利用して、観測するまでは”0(off)かも知れないし1(on)かも知れないね~あ~見てみないとわからんわ~” という状態を作っているわけです。
基本的にこのような量子力学的性質が現れるには ”極低温状態”や”ミクロ な状態”が求められるわけで、量子コンピュータもでっかい冷却装置がくっついてるわけですね。
(補足1:波って何?ってことですが、存在確率の波です。)
(補足2:シュレディンガー猫って私いつも思うんですけど猫っていうマクロな存在が観測してる時点で重ね合わせの状態ってなくなりますよね?人間が唯一の観測主体みたいな宗教感って欧米的で嫌いなんですが。)
で、結局量子コンピューターって何がすごいの?
「量子コンピューターは量子ビットを扱えることはわかったけど、……で?」
って方も多いと思います。
0と1の重ね合わせの状態が扱えるからと言って、1万年かかる計算を3分20秒でできるという話に結びつかないと思う方もおられるんじゃないでしょうか。
量子ビットを使えると、特定の複雑な問題を簡単に解くことができるのですが、具体的に言うとそれは”因数分解”(素因数分解)です。
「は?因数分解なんて小学校だか中学校の時にやったわ、なめてんのか?」
という方もおられると思いますが、安心してほしい。そしてインターネッツでそんなにイキらないでほしい。
あなた方がやってきた因数分解なんて高々3~4桁なので簡単だと思うかもしれませんが、因数分解はまず間違いなく最高に難しい問題です。
なんか思ったより長くなってきたし、飽きてきたし、眠いし、記事数を稼いで不労所得を増やしたいので今回はここまでにして、あとは次回以降に先送りします。
次回は因数分解が難しいという話と、因数分解が我々の生活を支えているという話と、量子コンピュータが因数分解を解くのが得意だという話をします。
今回のまとめ
- コンピュータは0と1をつかって計算するよ
- 一度に使える0と1の数が多いほど高性能なコンピュータと言えるよ
- 量子コンピュータは一度に扱える0と1の桁数は少ないけど、その代わりに0と1が重ね合わさった量子ビットが扱えるよ
- インターネット上ではシャミ子が悪い状態と悪くない状態が重ね合わされているよ
以上です。
“量子コンピューターって何?量子コンピューターで私たちの生活はどう変わるの?(その1)” への1件のフィードバック