From 630b766beee2c9dd2fed147a6969affabace302d Mon Sep 17 00:00:00 2001 From: ilyaspiridonov Date: Mon, 3 Oct 2022 20:21:39 +0300 Subject: [PATCH 1/2] Make ko, es, pt publishable (#1603) --- config.yaml | 2 +- translations/es/toc.yaml | 97 ++++++++++++++++++++++++++++++++++++++++ translations/ko/toc.yaml | 64 ++++++++++++++++++++++++++ translations/pt/toc.yaml | 54 ++++++++++++++++++++++ 4 files changed, 216 insertions(+), 1 deletion(-) create mode 100644 translations/es/toc.yaml create mode 100644 translations/ko/toc.yaml create mode 100644 translations/pt/toc.yaml diff --git a/config.yaml b/config.yaml index 00067e016..10d288770 100644 --- a/config.yaml +++ b/config.yaml @@ -5,7 +5,7 @@ domain: learn.qiskit.org # privacyURL: /policies # googleAnalytics: UA-XXX-XXX # banner: (c) Mathigon Ltd -locales: [en, ja] +locales: [en, ja, es, ko, pt] search: enabled: false diff --git a/translations/es/toc.yaml b/translations/es/toc.yaml new file mode 100644 index 000000000..28fafeb43 --- /dev/null +++ b/translations/es/toc.yaml @@ -0,0 +1,97 @@ +- title: Estados cuánticos y Qubits + url: /ch-states + sections: + - id: introduction + uuid: afcc559e-b519-11ec-b909-0242ac120002 + url: /ch-states/introduction + - id: the-atoms-of-computation + uuid: b31c20ee-b519-11ec-b909-0242ac120002 + url: /ch-states/atoms-computation + - id: representing-qubit-states + uuid: b81717ca-b519-11ec-b909-0242ac120002 + url: /ch-states/representing-qubit-states + - id: single-qubit-gates + uuid: bd4334a4-b519-11ec-b909-0242ac120002 + url: /ch-states/single-qubit-gates + - id: the-case-for-quantum-computers + uuid: c0bbff62-b519-11ec-b909-0242ac120002 + url: /ch-states/case-for-quantum + + +- title: Múltiples Qubits y entrelazamiento + url: /ch-gates + sections: + - id: introduction + uuid: c50f4c90-b519-11ec-b909-0242ac120002 + url: /ch-gates/introduction + - id: multiple-qubits-and-entangled-states + uuid: c7cfe502-b519-11ec-b909-0242ac120002 + url: /ch-gates/multiple-qubits-entangled-states + - id: basic-circuit-identities + uuid: ce8ce75a-b519-11ec-b909-0242ac120002 + url: /ch-gates/more-circuit-identities + - id: proving-universality + uuid: d15d3548-b519-11ec-b909-0242ac120002 + url: /ch-gates/proving-universality + - id: classical-computation-on-a-quantum-computer + uuid: d4f6e424-b519-11ec-b909-0242ac120002 + url: /ch-gates/oracles + + +- title: Protocolos cuánticos y algoritmos cuánticos + url: /ch-algorithms + sections: + - id: quantum-circuits + uuid: d90cbfb6-b519-11ec-b909-0242ac120002 + url: /ch-algorithms/defining-quantum-circuits + - id: deutsch-jozsa-algorithm + uuid: dc9d3aa2-b519-11ec-b909-0242ac120002 + url: /ch-algorithms/deutsch-jozsa + - id: bernstein-vazirani-algorithm + uuid: df6e5a40-b519-11ec-b909-0242ac120002 + url: /ch-algorithms/bernstein-vazirani + + +- title: Algoritmos cuánticos para aplicaciones + url: /ch-applications + sections: + - id: simulating-molecules-using-vqe + uuid: 041df288-b51a-11ec-b909-0242ac120002 + url: /ch-applications/vqe-molecules + - id: solving-combinatorial-optimization-problems-using-qaoa + uuid: 06ff7ada-b51a-11ec-b909-0242ac120002 + url: /ch-applications/qaoa + + +- title: Laboratorios de computación cuántica + url: /ch-labs + sections: + - id: lab-9-quantum-simulation-as-a-search-algorithm + uuid: 59a076f4-b51a-11ec-b909-0242ac120002 + url: /ch-labs/Lab09_QuantumSimulationSearchAlgorithm + + +- title: Juegos y demostraciones + url: /ch-demos + sections: + - id: estimating-pi-pi-using-quantum-phase-estimation-algorithm + uuid: 69b9707c-b51a-11ec-b909-0242ac120002 + url: /ch-demos/piday-code + + +- title: Algoritmos cuánticos + url: /algorithms + type: learning-path + sections: + - id: phase-kickback + uuid: 976e9da6-6c33-4e2f-b7eb-f9588f700f07 + url: /algorithms/phase-kickback + + +- title: Introducción a la Computación Cuántica + url: /introduction + type: learning-path + sections: + - uuid: bdb1d662-e0f6-428a-8830-befe6b47f320 + id: why-quantum-computing + url: /intro/why-quantum-computing diff --git a/translations/ko/toc.yaml b/translations/ko/toc.yaml new file mode 100644 index 000000000..eca8d6021 --- /dev/null +++ b/translations/ko/toc.yaml @@ -0,0 +1,64 @@ +- title: 양자 상태 및 큐비트 + url: /ch-states + sections: + - id: introduction + uuid: afcc559e-b519-11ec-b909-0242ac120002 + url: /ch-states/introduction + - id: the-atoms-of-computation + uuid: b31c20ee-b519-11ec-b909-0242ac120002 + url: /ch-states/atoms-computation + - id: representing-qubit-states + uuid: b81717ca-b519-11ec-b909-0242ac120002 + url: /ch-states/representing-qubit-states + - id: the-case-for-quantum-computers + uuid: c0bbff62-b519-11ec-b909-0242ac120002 + url: /ch-states/case-for-quantum + + +- title: 다중 큐비트 및 얽힘 + url: /ch-gates + sections: + - id: multiple-qubits-and-entangled-states + uuid: c7cfe502-b519-11ec-b909-0242ac120002 + url: /ch-gates/multiple-qubits-entangled-states + - id: basic-circuit-identities + uuid: ce8ce75a-b519-11ec-b909-0242ac120002 + url: /ch-gates/more-circuit-identities + + +- title: 양자 프로토콜 및 양자 알고리즘 + url: /ch-algorithms + sections: + - id: bernstein-vazirani-algorithm + uuid: df6e5a40-b519-11ec-b909-0242ac120002 + url: /ch-algorithms/bernstein-vazirani + + +- title: 양자 알고리즘 + url: /algorithms + type: learning-path + sections: + - id: phase-kickback + uuid: 976e9da6-6c33-4e2f-b7eb-f9588f700f07 + url: /algorithms/phase-kickback + + +- title: 양자 컴퓨팅 소개 + url: /introduction + type: learning-path + sections: + - uuid: bdb1d662-e0f6-428a-8830-befe6b47f320 + id: why-quantum-computing + url: /intro/why-quantum-computing + - id: what-is-quantum + uuid: 7c765036-aebc-11ec-b909-0242ac120002 + url: /intro/what-is-quantum + - id: describing-quantum-computers + uuid: 9260a554-aebc-11ec-b909-0242ac120002 + url: /intro/describing-quantum-computers + - id: grovers-search-algorithm + uuid: a2e6f7a2-aebc-11ec-b909-0242ac120002 + url: /intro/grover-intro + - id: project + uuid: e25c3f90-aebd-11ec-b909-0242ac120002 + url: /intro/project diff --git a/translations/pt/toc.yaml b/translations/pt/toc.yaml new file mode 100644 index 000000000..10e208857 --- /dev/null +++ b/translations/pt/toc.yaml @@ -0,0 +1,54 @@ +- title: Pré-requisitos + url: /ch-prerequisites + sections: + - id: environment-setup-guide-to-work-with-qiskit-textbook + uuid: a5a86ddc-b519-11ec-b909-0242ac120002 + url: /ch-prerequisites/setting-the-environment + - id: introduction-to-python-and-jupyter-notebooks + uuid: a9f5ea68-b519-11ec-b909-0242ac120002 + url: /ch-prerequisites/python-and-jupyter-notebooks + + +- title: Algoritmos Quânticos + url: /algorithms + type: learning-path + sections: + - id: phase-kickback + uuid: 976e9da6-6c33-4e2f-b7eb-f9588f700f07 + url: /algorithms/phase-kickback + + +- title: Introdução à computação quântica + url: /introduction + type: learning-path + sections: + - uuid: bdb1d662-e0f6-428a-8830-befe6b47f320 + id: why-quantum-computing + url: /intro/why-quantum-computing + - id: the-atoms-of-computation + uuid: 37ef477e-ab8d-11ec-b909-0242ac120002 + url: /intro/atoms-of-computation + - id: what-is-quantum + uuid: 7c765036-aebc-11ec-b909-0242ac120002 + url: /intro/what-is-quantum + - id: describing-quantum-computers + uuid: 9260a554-aebc-11ec-b909-0242ac120002 + url: /intro/describing-quantum-computers + - id: entangled-states + uuid: 98aa9032-aebc-11ec-b909-0242ac120002 + url: /intro/entangled-states + - id: visualizing-entanglement + uuid: 9e8ceb9e-aebc-11ec-b909-0242ac120002 + url: /intro/visualizing-entanglement + - id: project + uuid: e25c3f90-aebd-11ec-b909-0242ac120002 + url: /intro/project + + +- title: Aprendizado de máquina quântico + url: /machine-learning + type: learning-path + sections: + - id: data-encoding + uuid: 1d09af66-b51b-11ec-b909-0242ac120002 + url: /quantum-machine-learning/encoding From f11812935d81aa5dc458a140f5d885250c323872 Mon Sep 17 00:00:00 2001 From: ilyaspiridonov Date: Tue, 4 Oct 2022 17:50:32 +0300 Subject: [PATCH 2/2] Fix formulas in ko, pt (#1610) --- .../ko/ch-states/case-for-quantum.ipynb | 2 +- .../intro/describing-quantum-computers.ipynb | 259 +++++++++++++++--- translations/ko/intro/grover-intro.ipynb | 2 +- translations/ko/intro/what-is-quantum.ipynb | 2 +- .../pt/intro/atoms-of-computation.ipynb | 16 +- .../intro/describing-quantum-computers.ipynb | 249 +++++++++++++++-- translations/pt/intro/what-is-quantum.ipynb | 162 ++++++----- 7 files changed, 533 insertions(+), 159 deletions(-) diff --git a/translations/ko/ch-states/case-for-quantum.ipynb b/translations/ko/ch-states/case-for-quantum.ipynb index 56d7a5368..78dc7f5ab 100644 --- a/translations/ko/ch-states/case-for-quantum.ipynb +++ b/translations/ko/ch-states/case-for-quantum.ipynb @@ -136,7 +136,7 @@ "\n", "이상적인 계산 모델을 제안한다면 디지털 컴퓨터의 확실성과 아날로그 컴퓨터의 섬세한 조작을 결합하는 방법을 모색할 수 있습니다. 이를 달성하기 위해 우리는 양자 역학을 고려해 볼 수있습니다. 큐비트는 이산 출력 `0` 과 `1` 을 가진 시스템이지만 연속 매개변수로만 설명할 수 있는 상태로 존재할 수 있음을 이미 살펴보았습니다. 큐비트는 이산적이거나 연속적인 어느 하나로는 완전히 표현할 수 없고 오히려 그 두 가지 조합으로 표현할 수 있습니다. 아인슈타인은 아래의 말을 남겼습니다,$^{2}$\n", "\n", - "> '때로는 하나의 이론을 사용하고 때로는 다른 이론을 사용해야 하는 것처럼 보이지만 때로는 둘 중 하나를 사용할 수도 있습니다. 우리는 새로운 종류의 어려움에 직면해 있습니다. 우리는 현실에 대해 두 가지 상반된 그림을 가지고 있습니다. 따로따로 그들 중 어느 것도 현상을 완전히 설명하지 못하고…\n", + "> '때로는 하나의 이론을 사용하고 때로는 다른 이론을 사용해야 하는 것처럼 보이지만 때로는 둘 중 하나를 사용할 수도 있습니다. 우리는 새로운 종류의 어려움에 직면해 있습니다. 우리는 현실에 대해 두 가지 상반된 그림을 가지고 있습니다. 따로따로 그들 중 어느 것도 현상을 완전히 설명하지 못하고…'\n", "\n", "따라서 큐비트에 게이트를 적용하는 것이 원시적인 작업인 양자 컴퓨터는 아날로그도 디지털도 아닌 고유한 것입니다. 다음 장에서 우리는 이 독특한 특성의 결과를 탐구할 것입니다. 우리는 양자 컴퓨터가 디지털 컴퓨터와 근본적으로 다른 복잡성으로 문제를 해결할 수 있음을 알게 될 것입니다. 사실, 양자 컴퓨팅은 특정 작업에 대해 기존 컴퓨터보다 기하급수적으로 빨라질 수 있는 유일한 알려진 기술로, 잠재적으로 계산 시간을 몇 년에서 몇 분으로 단축할 수 있습니다. 또한 양자 오류 수정이 결함의 영향을 제거할 수 있는 방법을 탐구할 것입니다." ] diff --git a/translations/ko/intro/describing-quantum-computers.ipynb b/translations/ko/intro/describing-quantum-computers.ipynb index 5bf506447..d6b32c357 100644 --- a/translations/ko/intro/describing-quantum-computers.ipynb +++ b/translations/ko/intro/describing-quantum-computers.ipynb @@ -104,7 +104,7 @@ "\n", "다음은 두 개의 큐비트가 있는 양자 컴퓨터의 상태 벡터의 예입니다.\n", "\n", - "$$\\class{x-ket}{|x\\rangle} \\class{def-equal}{:=} \\begin{bmatrix}\\cssId{_amp-0-0}{\\sqrt{\\tfrac{1}{2}}} \\ \\cssId{_amp-1-0}{\\sqrt{\\tfrac{1}{2}}} \\ \\cssId{_amp-2-0}{0} \\ \\cssId{_amp-3-0}{0} \\end{bmatrix}$$\n", + "$$\\class{x-ket}{|x\\rangle} \\class{def-equal}{:=} \\begin{bmatrix}\\cssId{_amp-0-0}{\\sqrt{\\tfrac{1}{2}}} \\\\ \\cssId{_amp-1-0}{\\sqrt{\\tfrac{1}{2}}} \\\\ \\cssId{_amp-2-0}{0} \\\\ \\cssId{_amp-3-0}{0} \\end{bmatrix}$$\n", "\n", "위의 식의 툴팁을 읽고 나서 아래의 질문에 답해 주십시오.\n", "\n", @@ -146,13 +146,13 @@ "\n", "\n", "\n", - "---\n", + "***\n", "\n", "\n", "\n", "\n", "\n", - "위의 상태 벡터가 큐비트들의 상태를 나타낸다면, 측정하였을때 '00'이 나올 *{nbsp}확률 *은 얼마일까요?\n", + "위의 상태 벡터가 큐비트들의 상태를 나타낸다면, 측정하였을때 '00'이 나올 _확률_ 은 얼마일까요?\n", "\n", "\n", "\n", @@ -289,25 +289,105 @@ "\n", "다음은 벡터의 스칼라곱 예제입니다.\n", "\n", - "$$ \\cssId{_number-three}{3} \\begin{bmatrix} \\class{_vec-el-0}{1} \\ \\class{_vec-el-1}{2} \\ \\class{_vec-el-2}{-1} \\ \\class{_vec-el-3}{\\tfrac{1}{2}} \\ \\end{bmatrix} \\class{equals}{=} \\begin{bmatrix} \\class{_vec-el-0}{3} \\ \\class{_vec-el-1}{6} \\ \\class{_vec-el-2}{-3} \\ \\class{_vec-el-3}{\\tfrac{3}{2}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{_number-three}{3}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{1} \\\\\n", + "\\class{_vec-el-1}{2} \\\\\n", + "\\class{_vec-el-2}{-1} \\\\\n", + "\\class{_vec-el-3}{\\tfrac{1}{2}} \\\\\n", + "\\end{bmatrix}\n", + "\\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{3} \\\\\n", + "\\class{_vec-el-1}{6} \\\\\n", + "\\class{_vec-el-2}{-3} \\\\\n", + "\\class{_vec-el-3}{\\tfrac{3}{2}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "벡터의 각 요소에 3을 곱한 것을 볼 수 있습니다. $N$ 요소가 있는 벡터에 대한 보다 일반적인 규칙은 다음과 같습니다.\n", "\n", - "$$ \\class{scalar}{s} \\begin{bmatrix} \\class{_vec-el-0}{e_0} \\ \\class{_vec-el-1}{e_1} \\ \\class{_vec-el-2}{e_2} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{e*{N-1}} \\ \\end{bmatrix} \\class{equals}{=} \\begin{bmatrix} \\class{_vec-el-0}{s\\times e_0} \\ \\class{_vec-el-1}{s\\times e_1} \\ \\class{_vec-el-2}{s\\times e_2} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{s\\times e*{N-1}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\class{scalar}{s}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{e_0} \\\\\n", + "\\class{_vec-el-1}{e_1} \\\\\n", + "\\class{_vec-el-2}{e_2} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{e_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "\\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{s\\times e_0} \\\\\n", + "\\class{_vec-el-1}{s\\times e_1} \\\\\n", + "\\class{_vec-el-2}{s\\times e_2} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{s\\times e_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "따라서 위에서 정의한 상태 벡터 $|x\\rangle$는 다음과 같이 더 간결하게 작성할 수 있습니다.\n", "\n", - "$$ \\class{x-ket}{|x\\rangle} = \\class{scalar}{\\sqrt{\\tfrac{1}{2}}} \\begin{bmatrix} \\cssId{_amp-0-1}{1} \\ \\cssId{_amp-1-1}{1} \\ \\cssId{_amp-2-1}{0} \\ \\cssId{_amp-3-1}{0} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\class{x-ket}{|x\\rangle} = \\class{scalar}{\\sqrt{\\tfrac{1}{2}}} \\begin{bmatrix}\n", + "\\cssId{_amp-0-1}{1} \\\\\n", + "\\cssId{_amp-1-1}{1} \\\\\n", + "\\cssId{_amp-2-1}{0} \\\\\n", + "\\cssId{_amp-3-1}{0} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "### 두 벡터의 덧셈\n", "\n", "두 번째 규칙은 두 벡터를 더하는 것입니다. 이는 두 벡터가 동일한 차원을 가질 경우에만 정의되며, 덧셈의 결과로 같은 차원을 갖는 새로운 벡터를 얻을 수 있습니다. 다음은 일반적인 규칙입니다.\n", "\n", - "$$ \\begin{bmatrix} \\class{_vec-el-0}{a_0} \\ \\class{_vec-el-1}{a_1} \\ \\class{_vec-el-2}{a_2} \\ \\class{_vec-el-3}{a_3} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{a*{N-1}} \\ \\end{bmatrix} + \\begin{bmatrix} \\class{_vec-el-0}{b_0} \\ \\class{_vec-el-1}{b_1} \\ \\class{_vec-el-2}{b_2} \\ \\class{_vec-el-3}{b_3} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{b*{N-1}} \\ \\end{bmatrix} \\class{equals}{=} \\begin{bmatrix} \\class{_vec-el-0}{a_0 + b_0} \\ \\class{_vec-el-1}{a_1 + b_1} \\ \\class{_vec-el-2}{a_2 + b_2} \\ \\class{vec-el-3}{a_3 + b_3} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{a*{N-1} + b{N-1}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{a_0} \\\\\n", + "\\class{_vec-el-1}{a_1} \\\\\n", + "\\class{_vec-el-2}{a_2} \\\\\n", + "\\class{_vec-el-3}{a_3} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{a_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "+\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{b_0} \\\\\n", + "\\class{_vec-el-1}{b_1} \\\\\n", + "\\class{_vec-el-2}{b_2} \\\\\n", + "\\class{_vec-el-3}{b_3} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{b_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "\\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{a_0 + b_0} \\\\\n", + "\\class{_vec-el-1}{a_1 + b_1} \\\\\n", + "\\class{_vec-el-2}{a_2 + b_2} \\\\\n", + "\\class{_vec-el-3}{a_3 + b_3} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{a_{N-1} + b_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "즉, 벡터를 더하거나 빼는 것으로 새로운 벡터를 만들 수 있습니다. 예를 들어 $|00\\rangle$와 $|01\\rangle$라는 벡터를 이와 같은 방식으로 정의하면 다음과 같습니다.\n", "\n", - "$$ \\class{def-00}{|00\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{1} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-01}{|01\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{1} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix} $$\n", + "$$\n", + "\\class{def-00}{|00\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{1} \\\\\n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\ \n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-01}{|01\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\\n", + " \\class{_amp-1-general}{1} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\\n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix}\n", + "$$\n", "\n", "$\\class{x-ket}{|x\\rangle}$를 다음과 같이 작성할 수 있습니다:\n", "\n", @@ -315,15 +395,51 @@ "\n", "이렇게 양자 상태를 더하는 것을 \"중첩하기\"라고 부르고, \"$|x\\rangle$는 상태 $|00\\rangle$와 $|01\\rangle$의 중첩이다.\"라고 표현할 수 있습니다. 실제로 양자 컴퓨터에서는 그렇게 계산 기저 상태를 정의하는 것이 일반적입니다.\n", "\n", - "$$ \\class{def-00}{|00\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{1} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-01}{|01\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{1} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-10}{|10\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{1} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-11}{|11\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{1} \\end{bmatrix} $$\n", + "$$\n", + "\\class{def-00}{|00\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{1} \\\\\n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\ \n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-01}{|01\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\\n", + " \\class{_amp-1-general}{1} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\\n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-10}{|10\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\ \n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{1} \\\\ \n", + " \\class{_amp-3-general}{0} \n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-11}{|11\\rangle} \\class{def-equal}{:=} \n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\ \n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\ \n", + " \\class{_amp-3-general}{1}\n", + " \\end{bmatrix}\n", + "$$\n", "\n", "그리고 각각의 벡터에 적당한 수를 곱해서 더하면 어떤 양자 상태도 이들 상태 벡터의 중첩으로 쓸 수 있습니다.\n", "\n", - "$$ \\cssId{_psi-ket}{|\\psi\\rangle} = \\class{*amp-0-general}{a*{00}}\\class{def-00}{|00\\rangle}\n", - "\n", - "- \\class{*amp-1-general}{a*{01}}\\class{def-01}{|01\\rangle}\n", - "- \\class{*amp-2-general}{a*{10}}\\class{def-10}{|10\\rangle}\n", - "- \\class{*amp-3-general}{a*{11}}\\class{def-11}{|11\\rangle} \\class{equals}{=} \\begin{bmatrix} \\class{*amp-0-general}{a*{00}} \\ \\class{*amp-1-general}{a*{01}} \\ \\class{*amp-2-general}{a*{10}} \\ \\class{*amp-3-general}{a*{11}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{_psi-ket}{|\\psi\\rangle} = \n", + " \\class{_amp-0-general}{a_{00}}\\class{def-00}{|00\\rangle}\n", + " + \\class{_amp-1-general}{a_{01}}\\class{def-01}{|01\\rangle}\n", + " + \\class{_amp-2-general}{a_{10}}\\class{def-10}{|10\\rangle}\n", + " + \\class{_amp-3-general}{a_{11}}\\class{def-11}{|11\\rangle} \\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_amp-0-general}{a_{00}} \\\\\n", + "\\class{_amp-1-general}{a_{01}} \\\\\n", + "\\class{_amp-2-general}{a_{10}} \\\\\n", + "\\class{_amp-3-general}{a_{11}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "임의의 벡터를 이 네 벡터의 조합으로 쓸 수 있기 때문에 이 네 벡터가 기저를 형성하고 있다고 하고 이를 *계산기저*라고 부릅니다. 계산기저는 유일한 기저가 아닙니다. 단일 큐비트의 경우, 자주 사용되는 기저는 $\\class{plus-ket}{|{+}\\rangle}$와 $\\class{minus-ket}{|{-}\\rangle}$ 벡터로 구성됩니다.\n", "\n", @@ -333,7 +449,22 @@ "\n", "\n", "\n", - "$$ \\class{plus-ket}{|{+}\\rangle} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{1} \\end{bmatrix} $$ $$ \\class{minus-ket}{|{-}\\rangle} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{-1} \\end{bmatrix} $$\n", + "$$\n", + "\\class{plus-ket}{|{+}\\rangle} =\n", + "\\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + " \\class{_sq-amp0}{1} \\\\\n", + " \\class{_sq-amp1}{1}\n", + "\\end{bmatrix}\n", + "$$\n", + "$$\n", + "\\class{minus-ket}{|{-}\\rangle} =\n", + "\\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + " \\class{_sq-amp0}{1} \\\\\n", + " \\class{_sq-amp1}{-1}\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", @@ -373,7 +504,9 @@ "\n", "우리는 벡터를 사용해서 임의의 양자 상태를 표현할 수 있다는 것을 알고 있지만 모든 벡터가 유효한 양자 상태가 될 수 있을까요? 아닙니다. 왜냐하면 출력의 발생 확률은 진폭을 제곱해서 계산되기 때문에 진폭의 제곱합이 1이 되지 않으면 사용할 수 없습니다.\n", "\n", - "$$ \\cssId{sum}{\\sum^{N-1}_{i=0}} \\cssId{_amp-i}{a_i}^2 = 1 $$\n", + "$$\n", + "\\cssId{sum}{\\sum^{N-1}_{i=0}} \\cssId{_amp-i}{a_i}^2 = 1\n", + "$$\n", "\n", "\n", "\n", @@ -389,19 +522,19 @@ "\n", "\n", "\n", - "1. $\\sqrt{\\tfrac{1}{3}}\\begin{bmatrix} 1 \\\\ -1 \\\\ 1 \\\\ 0 \\end{bmatrix}$\n", + "1. $\\sqrt{\\tfrac{1}{3}}\\begin{bmatrix} 1 \\\\\\\\ -1 \\\\\\\\ 1 \\\\\\\\ 0 \\end{bmatrix}$\n", "\n", "\n", "\n", "\n", "\n", - "1. $\\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\\\ -1 \\\\ -1 \\\\ 1 \\end{bmatrix}$\n", + "2. $\\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\\\\\\\ -1 \\\\\\\\ -1 \\\\\\\\ 1 \\end{bmatrix}$\n", "\n", "\n", "\n", "\n", "\n", - "1. $\\tfrac{1}{2}\\begin{bmatrix} 1 \\\\ 1 \\end{bmatrix}$\n", + "3. $\\tfrac{1}{2}\\begin{bmatrix} 1 \\\\\\\\ 1 \\end{bmatrix}$\n", "\n", "\n", "\n", @@ -425,11 +558,15 @@ "\n", "\n", "\n", - "$$ |a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\ 0 \\ 0 \\ 1 \\end{bmatrix} $$\n", + "$$\n", + "|a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", - "$$ -|a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} -1 \\ 0 \\ 0 \\ -1 \\end{bmatrix} $$\n", + "$$\n", + "-|a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} -1 \\\\ 0 \\\\ 0 \\\\ -1 \\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", @@ -465,19 +602,19 @@ "\n", "\n", "\n", - "1. $(2^n)^2$\n", + "2. $(2^n)^2$\n", "\n", "\n", "\n", "\n", "\n", - "1. $2n$\n", + "3. $2n$\n", "\n", "\n", "\n", "\n", "\n", - "1. $2^{2^n}$\n", + "3. $2^{2^n}$\n", "\n", "\n", "\n", @@ -570,11 +707,27 @@ } }, "source": [ - "$$ \\cssId{u-gate}{U} = \\begin{bmatrix} \\class{*t_amp_00_00}{t*{00\\to 00}} & \\class{*t_amp_01_00}{t*{01\\to 00}} & \\class{*t_amp_10_00}{t*{10\\to 00}} & \\class{*t_amp_11_00}{t*{11\\to 00}} \\ \\class{*t_amp_00_01}{t*{00\\to 01}} & \\class{*t_amp_01_01}{t*{01\\to 01}} & \\class{*t_amp_10_01}{t*{10\\to 01}} & \\class{*t_amp_11_01}{t*{11\\to 01}} \\ \\class{*t_amp_00_10}{t*{00\\to 10}} & \\class{*t_amp_01_10}{t*{01\\to 10}} & \\class{*t_amp_10_10}{t*{10\\to 10}} & \\class{*t_amp_11_10}{t*{11\\to 10}} \\ \\class{*t_amp_00_11}{t*{00\\to 11}} & \\class{*t_amp_01_11}{t*{01\\to 11}} & \\class{*t_amp_10_11}{t*{10\\to 11}} & \\class{*t_amp_11_11}{t*{11\\to 11}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{u-gate}{U} = \n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_00_00}{t_{00\\to 00}} & \\class{_t_amp_01_00}{t_{01\\to 00}} & \\class{_t_amp_10_00}{t_{10\\to 00}} & \\class{_t_amp_11_00}{t_{11\\to 00}} \\\\\n", + "\\class{_t_amp_00_01}{t_{00\\to 01}} & \\class{_t_amp_01_01}{t_{01\\to 01}} & \\class{_t_amp_10_01}{t_{10\\to 01}} & \\class{_t_amp_11_01}{t_{11\\to 01}} \\\\\n", + "\\class{_t_amp_00_10}{t_{00\\to 10}} & \\class{_t_amp_01_10}{t_{01\\to 10}} & \\class{_t_amp_10_10}{t_{10\\to 10}} & \\class{_t_amp_11_10}{t_{11\\to 10}} \\\\\n", + "\\class{_t_amp_00_11}{t_{00\\to 11}} & \\class{_t_amp_01_11}{t_{01\\to 11}} & \\class{_t_amp_10_11}{t_{10\\to 11}} & \\class{_t_amp_11_11}{t_{11\\to 11}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "예를 들어, 다음은 '계산의 기본요소(원자)들' 챕터에서 보았던 CNOT 연산을 나타내는 행렬입니다.\n", "\n", - "$$ \\cssId{_cnot-gate}{\\text{CNOT}} = \\begin{bmatrix} \\class{_t_amp_00_00}{1} & \\class{_t_amp_01_00}{0} & \\class{_t_amp_10_00}{0} & \\class{_t_amp_11_00}{0} \\ \\class{_t_amp_00_01}{0} & \\class{_t_amp_01_01}{0} & \\class{_t_amp_10_01}{0} & \\class{_t_amp_11_01}{1} \\ \\class{_t_amp_00_10}{0} & \\class{_t_amp_01_10}{0} & \\class{_t_amp_10_10}{1} & \\class{_t_amp_11_10}{0} \\ \\class{_t_amp_00_11}{0} & \\class{_t_amp_01_11}{1} & \\class{_t_amp_10_11}{0} & \\class{_t_amp_11_11}{0} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{_cnot-gate}{\\text{CNOT}} =\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_00_00}{1} & \\class{_t_amp_01_00}{0} & \\class{_t_amp_10_00}{0} & \\class{_t_amp_11_00}{0} \\\\\n", + "\\class{_t_amp_00_01}{0} & \\class{_t_amp_01_01}{0} & \\class{_t_amp_10_01}{0} & \\class{_t_amp_11_01}{1} \\\\\n", + "\\class{_t_amp_00_10}{0} & \\class{_t_amp_01_10}{0} & \\class{_t_amp_10_10}{1} & \\class{_t_amp_11_10}{0} \\\\\n", + "\\class{_t_amp_00_11}{0} & \\class{_t_amp_01_11}{1} & \\class{_t_amp_10_11}{0} & \\class{_t_amp_11_11}{0} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", @@ -596,13 +749,13 @@ "\n", "\n", "\n", - "1. $0$\n", + "2. $0$\n", "\n", "\n", "\n", "\n", "\n", - "1. $\\begin{bmatrix} 1 & 0 & 0 & 0\\end{bmatrix}$\n", + "3. $\\begin{bmatrix} 1 & 0 & 0 & 0\\end{bmatrix}$\n", "\n", "\n", "\n", @@ -618,13 +771,39 @@ "\n", "다음은 이전 페이지에서 본 H-gate의 행렬입니다.\n", "\n", - "$$ H = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{1} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\ \\end{bmatrix} $$\n", + "$$\n", + "H = \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{1} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "(행렬과 스칼라의 곱셈은 벡터와 같은 규칙을 사용합니다). 그리고 어떤 연산이 큐비트들에 어떤 영향을 주는지를 보고 싶을 때에는 각 전이 진폭을 입력 상태 벡터의 각 상태의 진폭에 곱하고 각 상태의 진폭을 더해 출력 상태 벡터로 계산합니다. 이는 확률(또는 진폭) 트리의 각 가지를 따라 곱하고 마지막에 총 확률(또는 진폭)을 더하는 것과 동일합니다.\n", "\n", "수학에 익숙한 분이라면 바로 알 수 있듯, 이것은 일반적인 행렬의 곱셈입니다.\n", "\n", - "$$ H|0\\rangle = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{ 1} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\ \\end{bmatrix} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{0} \\ \\end{bmatrix} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} (1 \\class{dot}{\\cdot} 1) & + & (1 \\class{dot}{\\cdot} 0) \\ (1 \\class{dot}{\\cdot} 1) & + & (-1 \\class{dot}{\\cdot} 0) \\ \\end{bmatrix} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{1} \\ \\end{bmatrix} $$\n", + "$$\n", + "H|0\\rangle = \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{ 1} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\\\\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "\\class{_sq-amp0}{1} \\\\\n", + "\\class{_sq-amp1}{0} \\\\\n", + "\\end{bmatrix}\n", + "= \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "(1 \\class{dot}{\\cdot} 1) & + & (1 \\class{dot}{\\cdot} 0) \\\\\n", + "(1 \\class{dot}{\\cdot} 1) & + & (-1 \\class{dot}{\\cdot} 0) \\\\\n", + "\\end{bmatrix}\n", + "= \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "\\class{_sq-amp0}{1} \\\\\n", + "\\class{_sq-amp1}{1} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "![H-gate가 상태 |0>을 상태 |+>로 변환하는 방법을 보여주는 이미지](images/quantum-states/h-gate.svg)" ] @@ -638,15 +817,25 @@ "\n", "모든 벡터가 유효한 상태 벡터가 아닌 것처럼 모든 행렬이 유효한 양자 연산인 것은 아닙니다. 만약 행렬이 진정한 연산으로서 의미를 갖는다면 출력 상태의 합계 확률을 1로 유지해야 합니다. 따라서 다음의 행렬은 양자 연산으로 사용 할 수 없습니다.\n", "\n", - "$$ \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "왜냐하면 이 행렬은 $|0\\rangle$ 상태에 대해 다음과 같이 작동하기 때문입니다:\n", "\n", - "# $$ \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\ \\end{bmatrix}\\begin{bmatrix} 1 \\ 0 \\end{bmatrix}\n", - "\n", - "\\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{1} \\end{bmatrix} $$\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\\\\n", + "\\end{bmatrix}\\begin{bmatrix} 1 \\\\ 0 \\end{bmatrix}\n", + "=\n", + "\\begin{bmatrix} \\class{_sq-amp0}{1} \\\\ \\class{_sq-amp1}{1} \\end{bmatrix}\n", + "$$\n", "\n", - "그리고 확률의 합은 2가 되므로 조건을 만족하지 않게 됩니다. 또한 상태 $|1}rangle $에 작용한 경우 합계 확률은 0이 되어, 마찬가지로 규칙에 어긋나게 됩니다. 어떠한 경우에도 확률의 총합이 변하지 않으려면 연산이 가역적(reversible)으로 될 필요가 있습니다. 즉, 양자 게이트를 거꾸로 실행해 '원래로 되돌릴' 수 있는 것입니다(회전을 반전시키는 것을 기억하십시오). 이러한 성질을 가진 행렬을 *유니터리 행렬*이라고 부릅니다. 양자 게이트를 '유니터리' 또는 '유니터리 게이트'라고 부르는 것을 흔히 볼 수 있습니다." + "그리고 확률의 합은 2가 되므로 조건을 만족하지 않게 됩니다. 또한 상태 $|1\\rangle$ $에 작용한 경우 합계 확률은 0이 되어, 마찬가지로 규칙에 어긋나게 됩니다. 어떠한 경우에도 확률의 총합이 변하지 않으려면 연산이 가역적(reversible)으로 될 필요가 있습니다. 즉, 양자 게이트를 거꾸로 실행해 '원래로 되돌릴' 수 있는 것입니다(회전을 반전시키는 것을 기억하십시오). 이러한 성질을 가진 행렬을 *유니터리 행렬*이라고 부릅니다. 양자 게이트를 '유니터리' 또는 '유니터리 게이트'라고 부르는 것을 흔히 볼 수 있습니다." ] } ], diff --git a/translations/ko/intro/grover-intro.ipynb b/translations/ko/intro/grover-intro.ipynb index f4a0577b2..52bf5e6dc 100644 --- a/translations/ko/intro/grover-intro.ipynb +++ b/translations/ko/intro/grover-intro.ipynb @@ -184,7 +184,7 @@ "\n", "\n", "\n", - "---\n", + "***\n", "\n", "\n", "\n", diff --git a/translations/ko/intro/what-is-quantum.ipynb b/translations/ko/intro/what-is-quantum.ipynb index ba47302f8..a29bca462 100644 --- a/translations/ko/intro/what-is-quantum.ipynb +++ b/translations/ko/intro/what-is-quantum.ipynb @@ -439,7 +439,7 @@ "\n", "\n", "\n", - "---\n", + "***\n", "\n", "\n", "\n", diff --git a/translations/pt/intro/atoms-of-computation.ipynb b/translations/pt/intro/atoms-of-computation.ipynb index ca0ce7756..c2c1f6dfd 100644 --- a/translations/pt/intro/atoms-of-computation.ipynb +++ b/translations/pt/intro/atoms-of-computation.ipynb @@ -700,15 +700,13 @@ "\n", "Organize os blocos para criar o bloco de código que produz o circuito meio somador acima.\n", "\n", - "```\n", - "q-drag-and-drop-code(goal=\"intro-aoc-3\")\n", - " .line from qiskit import QuantumCircuit\n", - " .line qc = QuantumCircuit(4, 2)\n", - " .line(group=0) qc.cx(0, 2)\n", - " .line(group=0) qc.cx(1, 2)\n", - " .line(group=0) qc.ccx(0, 1, 3)\n", - " .result-info\n", - "```\n", + " q-drag-and-drop-code(goal=\"intro-aoc-3\")\n", + " .line from qiskit import QuantumCircuit\n", + " .line qc = QuantumCircuit(4, 2)\n", + " .line(group=0) qc.cx(0, 2)\n", + " .line(group=0) qc.cx(1, 2)\n", + " .line(group=0) qc.ccx(0, 1, 3) \n", + " .result-info\n", "\n", "" ] diff --git a/translations/pt/intro/describing-quantum-computers.ipynb b/translations/pt/intro/describing-quantum-computers.ipynb index b09078b4d..f3e04e5ee 100644 --- a/translations/pt/intro/describing-quantum-computers.ipynb +++ b/translations/pt/intro/describing-quantum-computers.ipynb @@ -104,7 +104,7 @@ "\n", "Aqui está um exemplo de um vetor de estado para um computador quântico com dois qubits:\n", "\n", - "$$\\class{x-ket}{|x\\rangle} \\class{def-equal}{:=} \\begin{bmatrix}\\cssId{_amp-0-0}{\\sqrt{\\tfrac{1}{2}}} \\ \\cssId{_amp-1-0}{\\sqrt{\\tfrac{1}{2}}} \\ \\cssId{_amp-2-0}{0} \\ \\cssId{_amp-3-0}{0} \\end{bmatrix}$$\n", + "$$\\class{x-ket}{|x\\rangle} \\class{def-equal}{:=} \\begin{bmatrix}\\cssId{_amp-0-0}{\\sqrt{\\tfrac{1}{2}}} \\\\ \\cssId{_amp-1-0}{\\sqrt{\\tfrac{1}{2}}} \\\\ \\cssId{_amp-2-0}{0} \\\\ \\cssId{_amp-3-0}{0} \\end{bmatrix}$$\n", "\n", "Passe algum tempo lendo as dicas sobre a equação acima e, em seguida, responda às perguntas abaixo.\n", "\n", @@ -146,7 +146,7 @@ "\n", "\n", "\n", - "---\n", + "***\n", "\n", "\n", "\n", @@ -289,25 +289,105 @@ "\n", "Por exemplo, aqui está um vetor multiplicado por um escalar:\n", "\n", - "$$ \\cssId{_number-three}{3} \\begin{bmatrix} \\class{_vec-el-0}{1} \\ \\class{_vec-el-1}{2} \\ \\class{_vec-el- 2}{-1} \\ \\class{_vec-el-3}{\\tfrac{1}{2}} \\ \\end{bmatrix} \\class{equals}{=} \\begin{bmatrix} \\class{_vec- el-0}{3} \\ \\class{_vec-el-1}{6} \\ \\class{_vec-el-2}{-3} \\ \\class{_vec-el-3}{\\tfrac{3} {2}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{_number-three}{3}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{1} \\\\\n", + "\\class{_vec-el-1}{2} \\\\\n", + "\\class{_vec-el-2}{-1} \\\\\n", + "\\class{_vec-el-3}{\\tfrac{1}{2}} \\\\\n", + "\\end{bmatrix}\n", + "\\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{3} \\\\\n", + "\\class{_vec-el-1}{6} \\\\\n", + "\\class{_vec-el-2}{-3} \\\\\n", + "\\class{_vec-el-3}{\\tfrac{3}{2}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "Podemos ver que cada elemento do vetor foi multiplicado por 3. A regra mais geral para um vetor com $N$ elementos é:\n", "\n", - "$$ \\class{scalar}{s} \\begin{bmatrix} \\class{_vec-el-0}{e_0} \\ \\class{_vec-el-1}{e_1} \\ \\class{_vec-el-2}{e_2} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{e*{N-1}} \\ \\end{bmatrix} \\class{equals}{=} \\begin{bmatrix} \\class{_vec-el-0}{s\\times e_0} \\ \\class{_vec-el-1}{s\\times e_1} \\ \\class{_vec-el-2}{s\\times e_2} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{s\\times e*{N-1}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\class{scalar}{s}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{e_0} \\\\\n", + "\\class{_vec-el-1}{e_1} \\\\\n", + "\\class{_vec-el-2}{e_2} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{e_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "\\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{s\\times e_0} \\\\\n", + "\\class{_vec-el-1}{s\\times e_1} \\\\\n", + "\\class{_vec-el-2}{s\\times e_2} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{s\\times e_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "Então, poderíamos ter escrito o vetor de estado $|x\\rangle$ que definimos acima mais claramente assim:\n", "\n", - "$$ \\class{x-ket}{|x\\rangle} = \\class{scalar}{\\sqrt{\\tfrac{1}{2}}} \\begin{bmatrix} \\cssId{_amp-0-1}{1} \\ \\cssId{_amp-1-1}{1} \\ \\cssId{_amp-2-1}{0} \\ \\cssId{_amp-3-1}{0} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\class{x-ket}{|x\\rangle} = \\class{scalar}{\\sqrt{\\tfrac{1}{2}}} \\begin{bmatrix}\n", + "\\cssId{_amp-0-1}{1} \\\\\n", + "\\cssId{_amp-1-1}{1} \\\\\n", + "\\cssId{_amp-2-1}{0} \\\\\n", + "\\cssId{_amp-3-1}{0} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "### Somando dois vetores\n", "\n", "A segunda regra é para somar dois vetores. Isso só é definido quando os dois vetores têm o mesmo número de elementos, e dá um novo vetor com o mesmo número de elementos. Aqui está a regra geral:\n", "\n", - "$$ \\begin{bmatrix} \\class{_vec-el-0}{a_0} \\ \\class{_vec-el-1}{a_1} \\ \\class{_vec-el-2}{a_2} \\ \\class{_vec-el-3}{a_3} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{a*{N-1}} \\ \\end{bmatrix} + \\begin{bmatrix} \\class{_vec-el-0}{b_0} \\ \\class{_vec-el-1}{b_1} \\ \\class{_vec-el-2}{b_2} \\ \\class{_vec-el-3}{b_3} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{b*{N-1}} \\ \\end{bmatrix} \\class{equals}{=} \\begin{bmatrix} \\class{_vec-el-0}{a_0 + b_0} \\ \\class{_vec-el-1}{a_1 + b_1} \\ \\class{_vec-el-2}{a_2 + b_2} \\ \\class{vec-el-3}{a_3 + b_3} \\ \\class{dots}{\\vdots} \\ \\class{*vec-el-n}{a*{N-1} + b{N-1}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{a_0} \\\\\n", + "\\class{_vec-el-1}{a_1} \\\\\n", + "\\class{_vec-el-2}{a_2} \\\\\n", + "\\class{_vec-el-3}{a_3} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{a_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "+\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{b_0} \\\\\n", + "\\class{_vec-el-1}{b_1} \\\\\n", + "\\class{_vec-el-2}{b_2} \\\\\n", + "\\class{_vec-el-3}{b_3} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{b_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "\\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_vec-el-0}{a_0 + b_0} \\\\\n", + "\\class{_vec-el-1}{a_1 + b_1} \\\\\n", + "\\class{_vec-el-2}{a_2 + b_2} \\\\\n", + "\\class{_vec-el-3}{a_3 + b_3} \\\\\n", + "\\class{dots}{\\vdots} \\\\\n", + "\\class{_vec-el-n}{a_{N-1} + b_{N-1}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "Isso significa que podemos adicionar e subtrair vetores para criar novos vetores. Por exemplo, se definirmos os vetores $|00\\rangle$ e $|01\\rangle$ assim:\n", "\n", - "$$ \\class{def-00}{|00\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{1} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-01}{|01\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{1} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix} $$\n", + "$$\n", + "\\class{def-00}{|00\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{1} \\\\\n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\ \n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-01}{|01\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\\n", + " \\class{_amp-1-general}{1} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\\n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix}\n", + "$$\n", "\n", "Podemos escrever $\\class{x-ket}{|x\\rangle}$ na forma:\n", "\n", @@ -315,15 +395,51 @@ "\n", "Chamamos a adição de estados quânticos como estes de “superposição”, então podemos dizer “$|x\\rangle$ é uma superposição dos estados $|00\\rangle$ e $|01\\rangle$.” Na verdade, é convenção na computação quântica definir os estados de base computacional assim:\n", "\n", - "$$ \\class{def-00}{|00\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{1} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-01}{|01\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{1} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-10}{|10\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{1} \\ \\class{_amp-3-general}{0} \\end{bmatrix}, \\quad \\class{def-11}{|11\\rangle} \\class{def-equal}{:=} \\begin{bmatrix} \\class{_amp-0-general}{0} \\ \\class{_amp-1-general}{0} \\ \\class{_amp-2-general}{0} \\ \\class{_amp-3-general}{1} \\end{bmatrix} $$\n", + "$$\n", + "\\class{def-00}{|00\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{1} \\\\\n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\ \n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-01}{|01\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\\n", + " \\class{_amp-1-general}{1} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\\n", + " \\class{_amp-3-general}{0}\n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-10}{|10\\rangle} \\class{def-equal}{:=}\n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\ \n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{1} \\\\ \n", + " \\class{_amp-3-general}{0} \n", + " \\end{bmatrix},\n", + "\\quad\n", + "\\class{def-11}{|11\\rangle} \\class{def-equal}{:=} \n", + " \\begin{bmatrix} \\class{_amp-0-general}{0} \\\\ \n", + " \\class{_amp-1-general}{0} \\\\ \n", + " \\class{_amp-2-general}{0} \\\\ \n", + " \\class{_amp-3-general}{1}\n", + " \\end{bmatrix}\n", + "$$\n", "\n", "E podemos escrever qualquer estado quântico como uma superposição desses vetores de estado, se multiplicarmos cada vetor pelo número correto e os somarmos:\n", "\n", - "$$ \\cssId{_psi-ket}{|\\psi\\rangle} = \\class{*amp-0-general}{a*{00}}\\class{def-00}{|00\\rangle}\n", - "\n", - "- \\class{*amp-1-general}{a*{01}}\\class{def-01}{|01\\rangle}\n", - "- \\class{*amp-2-general}{a*{10}}\\class{def-10}{|10\\rangle}\n", - "- \\class{*amp-3-general}{a*{11}}\\class{def-11}{|11\\rangle} \\class{equals}{=} \\begin{bmatrix} \\class{*amp-0-general}{a*{00}} \\ \\class{*amp-1-general}{a*{01}} \\ \\class{*amp-2-general}{a*{10}} \\ \\class{*amp-3-general}{a*{11}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{_psi-ket}{|\\psi\\rangle} = \n", + " \\class{_amp-0-general}{a_{00}}\\class{def-00}{|00\\rangle}\n", + " + \\class{_amp-1-general}{a_{01}}\\class{def-01}{|01\\rangle}\n", + " + \\class{_amp-2-general}{a_{10}}\\class{def-10}{|10\\rangle}\n", + " + \\class{_amp-3-general}{a_{11}}\\class{def-11}{|11\\rangle} \\class{equals}{=}\n", + "\\begin{bmatrix}\n", + "\\class{_amp-0-general}{a_{00}} \\\\\n", + "\\class{_amp-1-general}{a_{01}} \\\\\n", + "\\class{_amp-2-general}{a_{10}} \\\\\n", + "\\class{_amp-3-general}{a_{11}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "Como podemos escrever qualquer vetor como uma combinação desses quatro vetores, dizemos que esses quatro vetores formam uma base, que chamaremos de *base computacional* . A base computacional não é a única base. Para qubits únicos, uma base popular é formada pelos vetores $\\class{plus-ket}{|{+}\\rangle}$ e $\\class{minus-ket}{|{-}\\rangle}$:\n", "\n", @@ -333,7 +449,22 @@ "\n", "\n", "\n", - "$$ \\class{plus-ket}{|{+}\\rangle} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{1} \\end{bmatrix} $$ $$ \\class{minus-ket}{|{-}\\rangle} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{-1} \\end{bmatrix} $$\n", + "$$\n", + "\\class{plus-ket}{|{+}\\rangle} =\n", + "\\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + " \\class{_sq-amp0}{1} \\\\\n", + " \\class{_sq-amp1}{1}\n", + "\\end{bmatrix}\n", + "$$\n", + "$$\n", + "\\class{minus-ket}{|{-}\\rangle} =\n", + "\\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + " \\class{_sq-amp0}{1} \\\\\n", + " \\class{_sq-amp1}{-1}\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", @@ -373,7 +504,9 @@ "\n", "Sabemos que podemos representar qualquer estado quântico usando vetores, mas qualquer vetor é um estado quântico válido? No nosso caso, não; já que elevamos nossas amplitudes ao quadrado para encontrar a probabilidade de ocorrência dos resultados, precisamos que esses quadrados somem um, caso contrário, não faz sentido.\n", "\n", - "$$ \\cssId{sum}{\\sum^{N-1}_{i=0}} \\cssId{_amp-i}{a_i}^2 = 1 $$\n", + "$$\n", + "\\cssId{sum}{\\sum^{N-1}_{i=0}} \\cssId{_amp-i}{a_i}^2 = 1\n", + "$$\n", "\n", "\n", "\n", @@ -389,19 +522,19 @@ "\n", "\n", "\n", - "1. $\\sqrt{\\tfrac{1}{3}}\\begin{bmatrix} 1 \\\\ -1 \\\\ 1 \\\\ 0 \\end{bmatrix}$\n", + "1. $\\sqrt{\\tfrac{1}{3}}\\begin{bmatrix} 1 \\\\\\\\ -1 \\\\\\\\ 1 \\\\\\\\ 0 \\end{bmatrix}$\n", "\n", "\n", "\n", "\n", "\n", - "1. $\\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\\\ -1 \\\\ -1 \\\\ 1 \\end{bmatrix}$\n", + "2. $\\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\\\\\\\ -1 \\\\\\\\ -1 \\\\\\\\ 1 \\end{bmatrix}$\n", "\n", "\n", "\n", "\n", "\n", - "1. $\\tfrac{1}{2}\\begin{bmatrix} 1 \\\\ 1 \\end{bmatrix}$\n", + "3. $\\tfrac{1}{2}\\begin{bmatrix} 1 \\\\\\\\ 1 \\end{bmatrix}$\n", "\n", "\n", "\n", @@ -425,11 +558,15 @@ "\n", "\n", "\n", - "$$ |a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\ 0 \\ 0 \\ 1 \\end{bmatrix} $$\n", + "$$\n", + "|a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} 1 \\\\ 0 \\\\ 0 \\\\ 1 \\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", - "$$ -|a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} -1 \\ 0 \\ 0 \\ -1 \\end{bmatrix} $$\n", + "$$\n", + "-|a\\rangle = \\sqrt{\\tfrac{1}{2}}\\begin{bmatrix} -1 \\\\ 0 \\\\ 0 \\\\ -1 \\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", @@ -570,11 +707,27 @@ } }, "source": [ - "$$ \\cssId{u-gate}{U} = \\begin{bmatrix} \\class{*t_amp_00_00}{t*{00\\to 00}} & \\class{*t_amp_01_00}{t*{01\\to 00}} & \\class{*t_amp_10_00}{t*{10\\to 00}} & \\class{*t_amp_11_00}{t*{11\\to 00}} \\ \\class{*t_amp_00_01}{t*{00\\to 01}} & \\class{*t_amp_01_01}{t*{01\\to 01}} & \\class{*t_amp_10_01}{t*{10\\to 01}} & \\class{*t_amp_11_01}{t*{11\\to 01}} \\ \\class{*t_amp_00_10}{t*{00\\to 10}} & \\class{*t_amp_01_10}{t*{01\\to 10}} & \\class{*t_amp_10_10}{t*{10\\to 10}} & \\class{*t_amp_11_10}{t*{11\\to 10}} \\ \\class{*t_amp_00_11}{t*{00\\to 11}} & \\class{*t_amp_01_11}{t*{01\\to 11}} & \\class{*t_amp_10_11}{t*{10\\to 11}} & \\class{*t_amp_11_11}{t*{11\\to 11}} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{u-gate}{U} = \n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_00_00}{t_{00\\to 00}} & \\class{_t_amp_01_00}{t_{01\\to 00}} & \\class{_t_amp_10_00}{t_{10\\to 00}} & \\class{_t_amp_11_00}{t_{11\\to 00}} \\\\\n", + "\\class{_t_amp_00_01}{t_{00\\to 01}} & \\class{_t_amp_01_01}{t_{01\\to 01}} & \\class{_t_amp_10_01}{t_{10\\to 01}} & \\class{_t_amp_11_01}{t_{11\\to 01}} \\\\\n", + "\\class{_t_amp_00_10}{t_{00\\to 10}} & \\class{_t_amp_01_10}{t_{01\\to 10}} & \\class{_t_amp_10_10}{t_{10\\to 10}} & \\class{_t_amp_11_10}{t_{11\\to 10}} \\\\\n", + "\\class{_t_amp_00_11}{t_{00\\to 11}} & \\class{_t_amp_01_11}{t_{01\\to 11}} & \\class{_t_amp_10_11}{t_{10\\to 11}} & \\class{_t_amp_11_11}{t_{11\\to 11}} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "Por exemplo, aqui está a matriz que representa a operação CNOT que vimos nos átomos da computação:\n", "\n", - "$$ \\cssId{_cnot-gate}{\\text{CNOT}} = \\begin{bmatrix} \\class{_t_amp_00_00}{1} & \\class{_t_amp_01_00}{0} & \\class{_t_amp_10_00}{0} & \\class{_t_amp_11_00}{0} \\ \\class{_t_amp_00_01}{0} & \\class{_t_amp_01_01}{0} & \\class{_t_amp_10_01}{0} & \\class{_t_amp_11_01}{1} \\ \\class{_t_amp_00_10}{0} & \\class{_t_amp_01_10}{0} & \\class{_t_amp_10_10}{1} & \\class{_t_amp_11_10}{0} \\ \\class{_t_amp_00_11}{0} & \\class{_t_amp_01_11}{1} & \\class{_t_amp_10_11}{0} & \\class{_t_amp_11_11}{0} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\cssId{_cnot-gate}{\\text{CNOT}} =\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_00_00}{1} & \\class{_t_amp_01_00}{0} & \\class{_t_amp_10_00}{0} & \\class{_t_amp_11_00}{0} \\\\\n", + "\\class{_t_amp_00_01}{0} & \\class{_t_amp_01_01}{0} & \\class{_t_amp_10_01}{0} & \\class{_t_amp_11_01}{1} \\\\\n", + "\\class{_t_amp_00_10}{0} & \\class{_t_amp_01_10}{0} & \\class{_t_amp_10_10}{1} & \\class{_t_amp_11_10}{0} \\\\\n", + "\\class{_t_amp_00_11}{0} & \\class{_t_amp_01_11}{1} & \\class{_t_amp_10_11}{0} & \\class{_t_amp_11_11}{0} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "\n", "\n", @@ -596,13 +749,13 @@ "\n", "\n", "\n", - "1. $0$\n", + "2. $0$\n", "\n", "\n", "\n", "\n", "\n", - "1. $\\begin{bmatrix} 1 & 0 & 0 & 0\\end{bmatrix}$\n", + "3. $\\begin{bmatrix} 1 & 0 & 0 & 0\\end{bmatrix}$\n", "\n", "\n", "\n", @@ -618,13 +771,39 @@ "\n", "E aqui está a matriz para a porta H que vimos na página anterior:\n", "\n", - "$$ H = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{1} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\ \\end{bmatrix} $$\n", + "$$\n", + "H = \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{1} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "(usamos a mesma regra para multiplicar uma matriz por um escalar como fazemos com vetores). E quando queremos ver que efeito uma operação terá em alguns qubits, multiplicamos cada amplitude de transição pela amplitude de cada estado em nosso vetor de estado de entrada e, em seguida, somamos as amplitudes de cada estado para obter nosso vetor de estado de saída. Isso é exatamente o mesmo que multiplicar ao longo de cada ramo em uma árvore de probabilidade (ou amplitude) e somar as probabilidades totais (ou amplitudes) no final.\n", "\n", "Para qualquer matemático na platéia, isso é apenas uma multiplicação de matrizes padrão.\n", "\n", - "$$ H|0\\rangle = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{ 1} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\ \\end{bmatrix} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{0} \\ \\end{bmatrix} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} (1 \\class{dot}{\\cdot} 1) & + & (1 \\class{dot}{\\cdot} 0) \\ (1 \\class{dot}{\\cdot} 1) & + & (-1 \\class{dot}{\\cdot} 0) \\ \\end{bmatrix} = \\sqrt{\\tfrac{1}{2}} \\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{1} \\ \\end{bmatrix} $$\n", + "$$\n", + "H|0\\rangle = \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{ 1} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{-1} \\\\\n", + "\\end{bmatrix}\n", + "\\begin{bmatrix}\n", + "\\class{_sq-amp0}{1} \\\\\n", + "\\class{_sq-amp1}{0} \\\\\n", + "\\end{bmatrix}\n", + "= \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "(1 \\class{dot}{\\cdot} 1) & + & (1 \\class{dot}{\\cdot} 0) \\\\\n", + "(1 \\class{dot}{\\cdot} 1) & + & (-1 \\class{dot}{\\cdot} 0) \\\\\n", + "\\end{bmatrix}\n", + "= \\sqrt{\\tfrac{1}{2}}\n", + "\\begin{bmatrix}\n", + "\\class{_sq-amp0}{1} \\\\\n", + "\\class{_sq-amp1}{1} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "![imagem mostrando como a porta H transforma o estado |0> no estado |+>](images/quantum-states/h-gate.svg)" ] @@ -638,13 +817,23 @@ "\n", "Da mesma forma que nem todo vetor é um vetor de estado válido, nem toda matriz é uma operação quântica válida. Para que uma matriz faça sentido como uma operação real, ela precisa manter a probabilidade total dos estados de saída igual a 1. Então, por exemplo, isso não poderia ser uma operação real:\n", "\n", - "$$ \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\ \\end{bmatrix} $$\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\\\\n", + "\\end{bmatrix}\n", + "$$\n", "\n", "Porque se ele atua no estado $|0\\rangle$ temos:\n", "\n", - "# $$ \\begin{bmatrix} \\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\ \\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\ \\end{bmatrix}\\begin{bmatrix} 1 \\ 0 \\end{bmatrix}\n", - "\n", - "\\begin{bmatrix} \\class{_sq-amp0}{1} \\ \\class{_sq-amp1}{1} \\end{bmatrix} $$\n", + "$$\n", + "\\begin{bmatrix}\n", + "\\class{_t_amp_0_0}{1} & \\class{_t_amp_1_0}{0} \\\\\n", + "\\class{_t_amp_0_1}{1} & \\class{_t_amp_1_1}{0} \\\\\n", + "\\end{bmatrix}\\begin{bmatrix} 1 \\\\ 0 \\end{bmatrix}\n", + "=\n", + "\\begin{bmatrix} \\class{_sq-amp0}{1} \\\\ \\class{_sq-amp1}{1} \\end{bmatrix}\n", + "$$\n", "\n", "e as probabilidades totais somam dois, o que não faz sentido. Alternativamente, se ele atuasse no estado $|1\\rangle$, então as probabilidades totais somariam zero, o que também não faz sentido. Para preservar a probabilidade total em todos os casos, nossas operações precisam ser reversíveis. Isso significa que podemos executar nossos portões quânticos para trás para 'desfazê-los' (lembrando-se de reverter quaisquer rotações) e ficar com o estado com o qual começamos. Dizemos que as matrizes com esta propriedade são *unitárias* . Você verá frequentemente portas quânticos chamadas de 'unitários' ou 'portas unitárias'." ] diff --git a/translations/pt/intro/what-is-quantum.ipynb b/translations/pt/intro/what-is-quantum.ipynb index 75292a0f2..a700108e7 100644 --- a/translations/pt/intro/what-is-quantum.ipynb +++ b/translations/pt/intro/what-is-quantum.ipynb @@ -151,87 +151,85 @@ "\n", "### Explorando a porta H\n", "\n", - "```\n", - "q-mini-composer(goal=\"what-is-minicomposer\")\n", - " .slide\n", - " .circuit\n", - " .autoMeasureGate\n", - " .availableGates H\n", - " .initialCircuit\n", - " .qubit\n", - " .goalCircuit\n", - " .qubit H\n", - " .startProbabilities 0: 1, 1: 0\n", - " .endProbabilities 0: 0.5, 1: 0.5\n", - " .instructions Drag the H-gate down onto the circuit\n", - " .lesson The H-gate seems to give a 50-50 chance of transforming the qubit from |0⟩ to either |0⟩ or |1⟩. We can plot this on a probability tree: \n", - " .info Nice one! Let's keep experimenting.\n", - " .slide\n", - " .circuit\n", - " .autoMeasureGate\n", - " .availableGates X\n", - " .initialCircuit\n", - " .qubit\n", - " .goalCircuit\n", - " .qubit X\n", - " .startProbabilities 0: 1, 1: 0\n", - " .endProbabilities 0: 0, 1: 1\n", - " .instructions Transform our qubit to the state |1⟩.\n", - " .lesson Great! After the X-gate, our qubit has 100% chance of being in the state |1⟩. Let's see how the H-gate acts on this input.\n", - " .info Click 'next' to add the H-gate.\n", - " .slide\n", - " .circuit\n", - " .autoMeasureGate\n", - " .availableGates H\n", - " .initialCircuit\n", - " .qubit X\n", - " .goalCircuit\n", - " .qubit X H\n", - " .startProbabilities 0: 0, 1: 1\n", - " .endProbabilities 0: 0.5, 1: 0.5\n", - " .instructions Add the H-gate to the end of the circuit.\n", - " .lesson The H-gate also seems to give a 50-50 chance of transforming the qubit from |1⟩ to either |0⟩ or |1⟩. We can plot this on a probability tree too: \n", - " .info Awesome!\n", - " .slide\n", - " .circuit\n", - " .autoMeasureGate\n", - " .availableGates\n", - " .initialCircuit\n", - " .qubit X H\n", - " .goalCircuit\n", - " .qubit H\n", - " .startProbabilities 0: 0.5, 1: 0.5\n", - " .endProbabilities 0: 0.5, 1: 0.5\n", - " .instructions Remove the X-gate from your circuit\n", - " .lesson Now we know how the H-gate behaves on both possible input states, we can use this to predict its behaviour. Look at the probability tree, what do you think would happen if we applied two H-gates in a row?\n", - " .info Think about the answer before clicking 'next'.\n", - " .slide\n", - " .circuit\n", - " .autoMeasureGate\n", - " .availableGates H\n", - " .initialCircuit\n", - " .qubit H\n", - " .goalCircuit\n", - " .qubit H H\n", - " .startProbabilities 0: 0.5, 1: 0.5\n", - " .endProbabilities 0: 1, 1: 0\n", - " .instructions Let's test our theory. What would happen if we applied two H-gates in sequence?\n", - " .lesson What‽ This is strange. Let's try with the input |1⟩.\n", - " .info Nice one! Let's keep experimenting.\n", - " .slide\n", - " .circuit\n", - " .autoMeasureGate\n", - " .availableGates H\n", - " .initialCircuit\n", - " .qubit X H\n", - " .goalCircuit\n", - " .qubit X H H\n", - " .startProbabilities 0: 0.5, 1: 0.5\n", - " .endProbabilities 0: 0, 1: 1\n", - " .instructions What happens if we apply two H-gates after an X-gate?\n", - " .lesson This doesn't fit our model at all! In fact, there are no numbers we can put on our probability trees that will describe this behaviour. To explain this, we'll need to replace our probabilities with something else.\n", - " .info Congratulations! You've completed this exercise.\n", - "```\n", + " q-mini-composer(goal=\"what-is-minicomposer\")\n", + " .slide\n", + " .circuit\n", + " .autoMeasureGate\n", + " .availableGates H\n", + " .initialCircuit\n", + " .qubit\n", + " .goalCircuit\n", + " .qubit H\n", + " .startProbabilities 0: 1, 1: 0\n", + " .endProbabilities 0: 0.5, 1: 0.5\n", + " .instructions Drag the H-gate down onto the circuit\n", + " .lesson The H-gate seems to give a 50-50 chance of transforming the qubit from |0⟩ to either |0⟩ or |1⟩. We can plot this on a probability tree: \n", + " .info Nice one! Let's keep experimenting.\n", + " .slide\n", + " .circuit\n", + " .autoMeasureGate\n", + " .availableGates X\n", + " .initialCircuit\n", + " .qubit\n", + " .goalCircuit\n", + " .qubit X\n", + " .startProbabilities 0: 1, 1: 0\n", + " .endProbabilities 0: 0, 1: 1\n", + " .instructions Transform our qubit to the state |1⟩.\n", + " .lesson Great! After the X-gate, our qubit has 100% chance of being in the state |1⟩. Let's see how the H-gate acts on this input.\n", + " .info Click 'next' to add the H-gate.\n", + " .slide\n", + " .circuit\n", + " .autoMeasureGate\n", + " .availableGates H\n", + " .initialCircuit\n", + " .qubit X\n", + " .goalCircuit\n", + " .qubit X H\n", + " .startProbabilities 0: 0, 1: 1\n", + " .endProbabilities 0: 0.5, 1: 0.5\n", + " .instructions Add the H-gate to the end of the circuit.\n", + " .lesson The H-gate also seems to give a 50-50 chance of transforming the qubit from |1⟩ to either |0⟩ or |1⟩. We can plot this on a probability tree too: \n", + " .info Awesome!\n", + " .slide\n", + " .circuit\n", + " .autoMeasureGate\n", + " .availableGates\n", + " .initialCircuit\n", + " .qubit X H\n", + " .goalCircuit\n", + " .qubit H\n", + " .startProbabilities 0: 0.5, 1: 0.5\n", + " .endProbabilities 0: 0.5, 1: 0.5\n", + " .instructions Remove the X-gate from your circuit\n", + " .lesson Now we know how the H-gate behaves on both possible input states, we can use this to predict its behaviour. Look at the probability tree, what do you think would happen if we applied two H-gates in a row?\n", + " .info Think about the answer before clicking 'next'.\n", + " .slide\n", + " .circuit\n", + " .autoMeasureGate\n", + " .availableGates H\n", + " .initialCircuit\n", + " .qubit H\n", + " .goalCircuit\n", + " .qubit H H\n", + " .startProbabilities 0: 0.5, 1: 0.5\n", + " .endProbabilities 0: 1, 1: 0\n", + " .instructions Let's test our theory. What would happen if we applied two H-gates in sequence?\n", + " .lesson What‽ This is strange. Let's try with the input |1⟩.\n", + " .info Nice one! Let's keep experimenting.\n", + " .slide\n", + " .circuit\n", + " .autoMeasureGate\n", + " .availableGates H\n", + " .initialCircuit\n", + " .qubit X H\n", + " .goalCircuit\n", + " .qubit X H H\n", + " .startProbabilities 0: 0.5, 1: 0.5\n", + " .endProbabilities 0: 0, 1: 1\n", + " .instructions What happens if we apply two H-gates after an X-gate?\n", + " .lesson This doesn't fit our model at all! In fact, there are no numbers we can put on our probability trees that will describe this behaviour. To explain this, we'll need to replace our probabilities with something else.\n", + " .info Congratulations! You've completed this exercise.\n", "\n", "\n", "\n", @@ -439,7 +437,7 @@ "\n", "\n", "\n", - "---\n", + "***\n", "\n", "\n", "\n",