• 検索結果がありません。

鬩・荳橸スュ闊郢晢スュ郢ァー郢晢スゥ郢晄コ佩ヲ郢ァー陷茨ス・鬮「?邵イ?2

N/A
N/A
Protected

Academic year: 2021

シェア "鬩・荳橸スュ闊郢晢スュ郢ァー郢晢スゥ郢晄コ佩ヲ郢ァー陷茨ス・鬮「?邵イ?2"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)

量子プログラミング入門 #2 RaspberryPi への QCL インストール&QCL はじめの一歩 2019.5.18 新海 春彦 1.QCL の RaspberryPi へのインストール

(1)ソースをダウンロードして展開

QCL のソースは http ://tp h.tuwi en.ac.at/ ~o em er/q cl .htm l にあります。 (“QCL 言語”などで検索して、上記の URL を選ぶ)

Download

の ・

Source Distribution:

qcl-0.6.4

の qcl -0.6. 4 から、右クリックしてファイルを保存します。場所はたとえば Desk to p など。 保存したら、同じく右クリックで解凍します。「qcl-0.6.4」というフォルダーができます。 (2)コンパイルする。足らないライブラリはそのつど補ってコンパイルしなおす。 ・コマンドプロンプトで、cd Desktop ⇒ cd qcl -0.6. 4 など とし て、(1) でできた フ ォル ダ に 移 動 。 ・ mak e と打 っ て コ ンパ イ ル する 。エ ラーが 出 た ら 、 下 記 の 要 領 で足 らな い ライブ ラリを イン ス トール して 、再 度 mak e と打 っ て コ ンパ イ ル 。 マー ク ⇒ 設 定 ⇒ Ad d /Remo ve So ftwar e の 検 索 窓 に エ ラーの 出 た ライ ブラリ の 名 前 を 入 れ て検 索 ⇒見 つ か った ら チ ェッ ク を入 れ て、 Ap pl y 見 つ か らな か った ら 、 頭 に「li b 」をつ け る 。た だ し 先 頭 が 「l」の とき は「l 」の 代 わ りに 「li b 」 例: readl i ne ⇒ li b r eadl i ne lfl ⇒ lib fl

名前の直後に数字、あるいは何もなしでその後に -dev がついたものがあれば大体それ。 見つかった中で、できるだけ新しそうなものにする。

多少違っていても、システムが必要な関連ライブラリを追加してくれるので、大概はうまくいく。 例として、NOOBS 3.0.1 の環境で追加したライブラリは次のとおり。

事 前 に li b pl o t-d ev-2.6-7

read l i ne.h ⇒ li b r eadl i ne-d ev-7.0- 3

ncur ses ⇒ li b ncur se s5-d ev-6. 0+20161126-1 +deb 9u2 lfl ⇒ li bfl -d ev-2.6 .1-1.3

・コンパイルがうまくいったら、mak e ins tal l と打って完成。qcl と打つとqclが起動する。 2.QCL はじめの一歩 (1) 量子ビットの割付 qu r eg 名 [個数] : 個数分だけ 量子ビットを割り当てる 例 qcl > qur eg q[ 2] : qという変数に2個、量子ビットを割り当てる。なお最初のビットは q[0] (2) 量子ビットの内容を見る dump 量子ビット名 例 qcl > dum p q[ 1] 結 果 : SPE C T RUM q[ 1] : <1> 見 方 : q[ 1] つ まり q の <1> 番 目 の 量 子 ビ ッ トは 1 |0> 0 とな る確 率 が 1 (3) 量 子 ビ ッ トの 「重 ね 合 わ せ」 (ア ダ マール 変 換 H adam ar d) H( 量 子 ビ ッ ト名 ) 「重ね合わせ」は量子ビットの基本の 1 つです。 0 であ り 1であ る 状 態 を作 り 出 しま す。 例 qcl > H(q ) qcl > dump q[ 1] ・・・結 果 を見 る た めに (2)と 同 じ dum p を とっ てみ る 結 果 : SPE C T RUM q[ 1] : <1> 見 方 : q[ 1] つ まり q の <1> 番 目 の 量 子 ビ ッ トは 0.5 |0> , 0.5 |1> 0 とな る確 率 が 0.5 、 1 とな る確 率 が 0.5 ⇒ 裏 面 へ 続 く

(2)

(4) 量子ビットの測定 mea s ur e 量子ビット名 ( , 結果を格納する変数) 「測定」も量子ビットの基本です。量子ビットは測定するまでは0か1か分かりませんが、 一度測定すると、結果は0か1のいずれかに固定され、その後は変化しません。 (5) 量子ビットのリセット res et 量子ビットを最初の状態に戻します。これは dump と同様、コンピュータ上でのみ可能な命令です。 (物理状態では、測定した量子ビットは元に戻りませんし、測定以外の方法では内容を確認できません。) ※ QCL は、ひとつの同じプログラムのなかで古典的(量子プログラミング以前の)コードと量子プログラミングの コードを組み合わせることが可能なことを特徴としています。上で説明した量子プログラミング以外のコードに ついては、C 言語とほぼ同じです。 3. 0 であり1である状態を確かめる量子プログラミング 0 であり1である状態を確かめる QCL プログラミング (kas aneawas e ) 実行結果の例 (表示内容は一部省略) 0 と1がおよそ半々になる。 ※インタープリターの為{と }が同じ行内にないと認識できないようで、実際には次のように改行を除去して入力。 ○ 量子プログラミング部分の量子回路 上記プログラミングのうち、量子プログラミング部分を量子回路で表すと 次のようになります。 :アダマールゲート :測定 ※次回 量子プログラミング入門 #3 量子もつれ(エンタングルメント)と量子テレポーテーション (予定) qur e g q[ 1 ] ; // 量 子 ビ ッ トを1個 割 り当 て る int a; // 測 定 結 果 保 存 場 所 int l; // ル ープ の カウ ン ト int m ; // 0の カウ ン ト場 所 int n; // 1の カウ ン ト場 所 m = 0;n = 0; // カウ ン トの 初 期 化 fo r l = 1 to 1000 0 // 1 万 回 試 行 { res et ; H( q ); // 重 ね 合 わ せ me as u r e q[ 0],a // q[ 0 ]を測 定 if a==0 { m = m + 1; } // 0 をカ ウン ト el s e { n = n + 1; } // 1 をカ ウン ト } pr int "0 = ",m ,", 1 = ",n ;// 結 果 の 印 刷 qur eg q[ 1];

int a;in t l;i nt m;i nt n; m = 0; n = 0;

fo r l = 1 to 10 000{re set;H (q );meas ur e q[ 0],a;i f a== 0{m =m +1;}el se{n=n +1;}} pr i nt "0 = ", m ,", 1 = ",n ; $ qcl kas aneawas e : 0 = 5038 , 1 = 4962 $ qcl kas aneawas e : 0 = 5009 , 1 = 4991 $ qcl kas aneawas e : 0 = 4960 , 1 = 5040 $ qcl kas aneawas e : 0 = 5010 , 1 = 4990 $ qcl kas aneawas e : 0 = 4970 , 1 = 5030 $ qcl kas aneawas e : 0 = 4944 , 1 = 50 56 :

参照

関連したドキュメント

There is a bijection between left cosets of S n in the affine group and certain types of partitions (see Bjorner and Brenti (1996) and Eriksson and Eriksson (1998)).. In B-B,

(The Elliott-Halberstam conjecture does allow one to take B = 2 in (1.39), and therefore leads to small improve- ments in Huxley’s results, which for r ≥ 2 are weaker than the result

[r]

“Breuil-M´ezard conjecture and modularity lifting for potentially semistable deformations after

S., Oxford Advanced Learner's Dictionary of Current English, Oxford University Press, Oxford

Keywords Catalyst, reactant, measure-valued branching, interactive branching, state-dependent branch- ing, two-dimensional process, absolute continuity, self-similarity,

At the end of the section, we will be in the position to present the main result of this work: a representation of the inverse of T under certain conditions on the H¨older

[r]