量子ビットが「0」「1」を同時に表現できるって事は オセロの裏表を同時に出せると言ってるのと同じですよ!?
皆さん、量子ビットを説明している記事に書いてあるあの内容、理解できますか? 私は理解以前に、あの説明方法に納得できません。
勿論理解はできていないです。
なんで納得できないのかと言う事と、量子ビットってたぶんこうなんじゃない?
という内容を書きたいと思います。
まず、量子ビットについてのお決まりの説明は、主にこの二つです。
1、「0」と「1」が同時に表現できる
2、「0」でもあり「1」でもある
どちらも言っている事はほぼ同じですが、この表現は納得できません。なぜなら、「コインの裏表を同時に出せます」と言ってるのと同じだからです。
量子コンピュータと言えどもロジックは古典コンピュータと同じなのです。
ならば、0か1どちらかじゃないと計算できないじゃないですか。
ではどう言う事なのか? 恐らく探せばちゃんと書いてある物があるのでしょうが、少なくともGoogleの上位に出てくるサイトには見つかりませんでした。
ですので、勝手に推測して書きたいと思います。専門家の方、間違ってたらご指摘お願いします。
前置きが長すぎましたので結論から言います。私が推測するに、
量子ビットも「0」「1」を別々にしか出せない。「0、1を同時に表現できる」と言う意味は、反転(書き込み)ロジックを介す事なく、量子ビット自身が「0」から「1」(その逆も)になれる事を指している。 と解釈しました。
定点観察すると、古典ビットは「0」は0のまま、「1」は1のままです。書き込み命令をしなければ変化しません。 それに対し量子ビットは書き込み命令がなくとも「0」になったり「1」になったりするわけです。「0」と「1」が同時に出現するわけではないと考えます。
コインを裏返す時には、いちいち手でコインを持ち上げてひっくり返す必要がありますが、量子ビットの考えではコインが勝手にくるくると高速回転して表裏を繰り返すイメージなのではないでしょうか。 高速回転なので見た目「0」と「1」が同時に現れている様にみえる。
では、それでなぜ演算が速くなるのかですが、これは飽くまで私が考えたイメージにすぎませんので真剣に読んでもらわなくても構いません。
例えば4桁のパスワードがあり、これを解きたいと思います。(以下十進法で表現しますが、概念は変わりませんので気にしないで下さい)
この場合0000から9999を、+1ステップづつ順番に入力すれば必ず正解に当たります。これをキーボードで手入力すると、かなりの時間がかかります。
別の手段としてこれを、プログラミングにて0000から1ずつ加算させて自動入力させます。やっているロジックは手入力と同じですが、機械に実行させた分速くなるわけです。これは古典コンピュータのロジックです。
そして量子ビットで行った場合はどうなるでしょうか。同じことをいちいちレジスタを使ってインクリメントなど行わずに、量子ビットが自分で変化してくれます。
恐らく4桁くらいの物なら古典ビットとの速度差は微々たるものかもしれませんが、とてつもない桁数だった場合は演算にかかる時間に大きな差がでるでしょう。
この記事が気に入ったらサポートをしてみませんか?