Tip
If you have trouble deciding between Anaconda and Miniconda, please refer to the table below
Anaconda | Miniconda |
---|---|
New to conda and/or Python | Familiar with conda and/or Python |
Not familiar with using terminal and prefer GUI | Comfortable using terminal |
Like the convenience of having Python and 1,500+ scientific packages automatically installed at once | Want fast access to Python and the conda commands and plan to sort out the other programs later |
Have the time and space (a few minutes and 3 GB) | Don't have the time or space to install 1,500+ packages |
Don't want to individually install each package | Don't mind individually installing each package |
Typing out entire Conda commands can sometimes be tedious, so I wrote a shell script (conda_shortcuts.sh
on GitHub Gist) to define shortcuts for commonly used Conda commands.
Example: Delete/remove a conda environment named test_env
- Shortcut command
rmenv test_env
- Manually typing out the entire command
conda env remove -n test_env && rm -rf $(conda info --base)/envs/test_env
The shortcut has 80.8% less characters!
- Verify that conda is installed
conda --version
- Ensure conda is up to date
conda update conda
- Enter the directory where you want the repository (
grovers-algorithm
) to be cloned- POSIX
cd ~/path/to/directory
- Windows
cd C:\Users\user\path\to\directory
- POSIX
- Clone the repository (
grovers-algorithm
), then enter (i.e.cd
command)grovers-algorithm
directorygit clone https://github.com/lynkos/grovers-algorithm.git && cd grovers-algorithm
- Create a conda virtual environment from
environment.yml
conda env create -f environment.yml
- Activate the virtual environment (
grovenv
)conda activate grovenv
- Confirm that the virtual environment (
grovenv
) is active- If active, the virtual environment's name should be in parentheses () or brackets [] before your command prompt, e.g.
(grovenv) $
- If necessary, see which environments are available and/or currently active (active environment denoted with asterisk (*))
OR
conda info --envs
conda env list
- If active, the virtual environment's name should be in parentheses () or brackets [] before your command prompt, e.g.
Tip
If you're unsure about which subsection(s) to follow, please refer to the table below
Visual Studio Code | Command Line |
---|---|
Beginner/User-friendly | Recommended if familiar with using terminals/shells/CLIs |
GUI | CLI |
Click a button to run program | Execute a command in terminal/shell/CLI to run program |
Note
Although they both perform the same function, there's a discernable difference between grovers_algorithm.py
and grovers_algorithm.ipynb
. The former is a Python script, the latter is a Jupyter notebook.
python src/grovers_algorithm.py
Command Line Arguments
Option | Type | Description | Default |
---|---|---|---|
-H, --help |
Show help message and exit | ||
-T, --title <title> |
str |
Window title | "Grover's Algorithm" |
-n, --n-qubits <n_qubits> |
int |
Number of qubits | 5 |
-s, --search <search> |
int |
Nonnegative integers to search for | 11 9 0 3 (i.e., { 11, 9, 0, 3 }) |
-S, --shots <shots> |
int |
Number of simulations | 1000 |
-f, --font-size <font_size> |
int |
Histogram's font size | 10 |
-p, --print |
bool |
Whether or not to print quantum circuit(s) | False |
-c, --combine |
bool |
Whether to combine all non-winning states into 1 bar labeled "Others" or not | False |
- Open
grovers_algorithm.py
- Run
grovers_algorithm.py
: Click▷
(i.e.Play
button) in the upper-right corner
- Open the Command Palette with the relevant keyboard shortcut
- Mac
⌘ + Shift + P
- Windows
CTRL + Shift + P
- Mac
- Search and select
Python: Select Interpreter
- Select the virtual environment (
grovenv
) - Open
grovers_algorithm.ipynb
- Confirm
grovenv
is the selected kernel - Run
grovers_algorithm.ipynb
by clickingRun All
- Install
ipykernel
in the virtual environment (grovenv
)conda install -n grovenv ipykernel
- Add the virtual environment (
grovenv
) as a Jupyter kernelpython -m ipykernel install --user --name=grovenv
- Open
grovers_algorithm.ipynb
in the currently running notebook server, starting one if necessaryjupyter notebook src/grovers_algorithm.ipynb
- Select the virtual environment (
grovenv
) as the kernel before runninggrovers_algorithm.ipynb
- [Optional] Deactivate the virtual environment (
grovenv
) to clean up and remove itconda deactivate
- Close the terminal
These serve as example outputs/results of the running Grover's algorithm (i.e. files in src
)
Generated by grovers_algorithm.ipynb
(i.e. Jupyter notebook)



Generated by grovers_algorithm.ipynb
(i.e. Jupyter notebook)




Histograms visualize the outcome/results of 1000 simulations of Grover's algorithm
Generated by grovers_algorithm.py
(i.e. Python script)
Tip
Hovering above a bar in the histogram displays that state's frequency

Histogram of the outcome of 1000 simulations of Grover's algorithm

Histogram of the outcome of 1000 simulations of Grover's algorithm, with all non-target states combined into a single bar
Generated by grovers_algorithm.ipynb
(i.e. Jupyter notebook)

Histogram of the outcome of 1000 simulations of Grover's algorithm
- Anaconda Documentation
- Conda Documentation
- Getting Started with Conda
- Jupyter Notebook Documentation
- Jupyter Project Documentation [PDF]
- Technical Support - Jupyter Google Group
- Qiskit Documentation
- Documentation for Visual Studio Code
- Using Jupyter Notebooks in Visual Studio Code
Special thanks to Simanraj Sadana for "Grover's search algorithm for n qubits with optimal number of iterations", which has been a helpful reference and an informative read
Distributed under the MIT License, Copyright © 2023 – 2025 Kiran Brahmatewari