スペックが何ビットになるか、というふうにひとくちには言えません。
まず、量子コンピュータは量子力学的効果を計算過程に使うというだけで、入力や確定した計算結果を格納しておくメモリなどは古典コンピュータと変わりません。演算器や中間結果を保持しておくレジスタ部分が異なるだけです。
また、量子コンピュータの利点を活かせるアルゴリズムを使わないと速くならないので、そのアルゴリズムが使えない問題でわざわざ量子コンピュータを使う意味はありません。
なので、量子コンピュータが実用化されるとしても、古典コンピュータを置き換えるのではなく、古典コンピュータに追加して使う、コプロセッサとかアクセラレータのようなものになるのではないかと思います。
ところで上で「速くなる」と書きましたが、これはCPUのクロックが4倍になるとか、バス幅が32ビットから64ビットになるとか、そういったスペック上の変化とはちょっと意味が違います。
古典コンピュータが苦手とする問題は、入力の大きさNに対して計算時間が2^N (2のN乗) で増えてゆくような問題です。Nが大きくなるにつれ計算時間がどんどん急激に大きくなるので、古典コンピュータでどんなにハードをがんばって速くしても、ちょっと大きなNを持ってくればまたすぐに膨大な時間がかかってしまいます。
このような問題の中に、量子アルゴリズムを使うと「Nの何乗」の計算時間で計算できるものがあります。たとえそれが N^100 (Nの100乗) だったとしても、Nが十分に大きければ 2^N (2のN乗) よりずっと小さくなるので、そういった問題に対して量子コンピュータの期待が高まっています。
有名なのは素因数分解で、古典アルゴリズムで知られている最速のものでも、入力の大きさNに対して 2^{定数×(((log N) (log log N)^2) ^ (1/3))} の計算時間が必要です。これが、量子コンピュータでは (log N)^3 で計算できることが知られています。
▽2
●
lang_and_engine ベストアンサー |
上の方が回答して下さったとおりですが,簡単にまとめます。
質問文には,前提として間違っている部分があります。
古典コンピュータと量子コンピュータの違いは
「(ある作業のために)必要なスペック」
ではなく
「(ある作業のために)必要な時間」
です。
時間は計算時間です。
プログラミングの用語でいえばステップ数,
計算機科学の用語でいえば計算量のオーダーです。
つまり,
古典と量子で,同じスペックで同じ問題を解かせた時に,
量子のほうが圧倒的に時間が少なくて済む場合がある。
という結論になります。
必要なスペックがどう異なるのか,という観点ではないです。