This repository contains implementations of five fundamental quantum algorithms. Each algorithm is presented in a Jupyter notebook, demonstrating practical applications, performance analysis, and visualizations.
- Bernstein-Vazirani Algorithm
- Deutsch-Jozsa Algorithm
- Grover's Algorithm
- Simon's Algorithm
- Shor's Algorithm
- Qiskit: A Python library for quantum computing provided by IBM.
- IBM Quantum backend: For executing quantum circuits on real quantum processors and simulators.
- Jupyter Notebooks: For creating and sharing documents that contain live code, equations, visualizations, and narrative text.
- Matplotlib: For creating visualizations in Python.
- NumPy: For numerical computations in Python.
Determines a hidden binary string by querying an oracle.
Solves the problem of determining whether a function is constant or balanced.
Provides a quadratic speedup for unstructured search problems.
Solves Simon's problem exponentially faster than any classical algorithm.
Factors integers in polynomial time, breaking RSA encryption.
- Python 3.6 or higher
- Jupyter Notebook
- Qiskit
- Matplotlib
- NumPy
-
Clone the repository:
git clone https://github.com/ArshMalik02/quantum-algorithms-notebook.git cd quantum-algorithms-notebook
-
Install the required packages:
pip install qiskit matplotlib numpy
-
Start Jupyter Notebook:
jupyter notebook
-
Open the desired notebook from the Jupyter interface.
Each notebook contains step-by-step instructions, code, and explanations. Simply run the cells in the notebooks to see the algorithms in action and visualize the results.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License.
- IBM Quantum for providing access to quantum processors and simulators.
- The Qiskit community for their excellent documentation and support.