{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "![(book cover)](https://covers.oreillystatic.com/images/0636920167433/cat.gif \"(book cover)\")\n", "# \"Programming Quantum Computers\" by O'Reilly Media - [book info](http://shop.oreilly.com/product/0636920167433.do) - [all code samples](https://oreilly-qc.github.io)\n", "\n", "## Code samples for Chapter 3\n", "These code samples were written by Mariia Mykhailova." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example 3-1: Creating a multi-qubit state that can be expressed in terms of its qubits" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/json": "[\"SeparableState\"]", "text/html": [ "
Qubit IDs | \r\n", "0, 1, 2 | \r\n", "||
---|---|---|---|
Basis state (little endian) | \r\n", "Amplitude | Meas. Pr. | Phase | \r\n", "
$\\left|0\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|1\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|2\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|3\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|4\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|5\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|6\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|7\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
Qubit IDs | \r\n", "0, 1, 2 | \r\n", "||
---|---|---|---|
Basis state (little endian) | \r\n", "Amplitude | Meas. Pr. | Phase | \r\n", "
$\\left|0\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|1\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|2\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|3\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|4\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|5\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|6\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|7\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
Qubit IDs | \r\n", "0, 1, 2 | \r\n", "||
---|---|---|---|
Basis state (little endian) | \r\n", "Amplitude | Meas. Pr. | Phase | \r\n", "
$\\left|0\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|1\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|2\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|3\\right\\rangle$ | \r\n", "$0.0000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|4\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|5\\right\\rangle$ | \r\n", "$0.3536 + 0.3536 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|6\\right\\rangle$ | \r\n", "$0.0000 + 0.5000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|7\\right\\rangle$ | \r\n", "$-0.3536 + 0.3536 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
Qubit IDs | \r\n", "0, 1 | \r\n", "||
---|---|---|---|
Basis state (little endian) | \r\n", "Amplitude | Meas. Pr. | Phase | \r\n", "
$\\left|0\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|1\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|2\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|3\\right\\rangle$ | \r\n", "$0.0000 + 0.5000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
Qubit IDs | \r\n", "0, 1 | \r\n", "||
---|---|---|---|
Basis state (little endian) | \r\n", "Amplitude | Meas. Pr. | Phase | \r\n", "
$\\left|0\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|1\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|2\\right\\rangle$ | \r\n", "$0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "
$\\left|3\\right\\rangle$ | \r\n", "$-0.5000 + 0.0000 i$ | \r\n", " \r\n", "\r\n", " | \r\n", " \r\n", " \r\n", "\r\n", " ↑\r\n", " | \r\n", " \r\n", "