LearnQC
Continuing updating...
Learing Quantum Computing with Qiskit.
Until now includes:
- hello_ibm, hello_qiskit. "Hello world" in Quantum Computing, to show how to build a simple quantum circuit and run it.
1.1. Before starting, I writed some frequently-used functions in funcs.py and test_funs.py. I will use them in the following codes.
- superdense coding. Use one qubit to send two bits of information.
- quantum teleportation. Use two classical bits to send one qubit of information.
- oracle. How to build a quantum oracle, which appears in Deustch-Jozsa algorithm and Simon algorithm.
- adjacency matrix. Given a adjacency matrix, use it to generate a quantum circuit to judge whether two given vertices are connected. In other words, how to use quantum circuit to store a graph.
- Deustch-Jozsa algorithm. Judge if a function is const or balanced.
- Simon algorithm. Given a function, find a string s st. f(x) = f(y), iff x = (y xor s) or x = y.
- exp2oracle. Given a boolean expression, convert it to a quantum circuit.
8.1 examples below need some rotation gates, I collected them in simplecircuit.ipynb.
- phase_estimation. Estimate the phase of a given function.
- qft. Quantum Fourier Transform. And Inverse Quantum Fourier Transform.
- modular. Modular addition and multiplication.
- add_mul. non-modular addition and multiplication in quantum computing.
- shor. Shor's algorithm. Factoring a number.
- grover. Grover's algorithm. Searching for a string.
- error_correction. Quantum Error Correction, or Shor's 9 qubit code.
envs:
- qiskit 1.1.0
- qiskit_aer 0.14.1
- qiskit_ibm_run 0.23.0
- matplotlib 3.9.1
- pylatexenc 2.10
Acknowledgments
I sincerely thank the following projects and individuals for their contributions:
- [shor_qiskit] (link: https://github.com/kazawai/shor_qiskit): This project provided [qpe_period_finding in Shor], which played a crucial role in our project. We particularly appreciate the generous sharing and excellent work of owner of this project.