{{ message }}

### Join GitHub today

GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

Simulate quantum algorithms from the command line. Developed with .NET (C#) and Q#. Implementations are heavily inspired by documentation available in: https://docs.microsoft.com/en-us/quantum/. The purpose of this project is just to experiment with simulations of quantum algorithms in classical computers. Due to limitations of classical hardware, the algorithms shown in this project don’t have a practical purpose or are a very down-sized version of a useful algorithm.

Algorithms implemented at the moment:

- Quantum random number generator: generate a random number using quantum superposition. The random number is generated by putting the output of several superposition simulations into a string of bits, and then converting those bits to base 10. The number of simulations depends on the upper bound of your random number.
- Grover’s Search Algorithm: search for the input marked by alternating 0’s and 1’s among 2
^{n}different items (where n is the number of qubits you want to use). - Entanglement: first, choose the number of qubits you want to experiment with and their starting state. Then, a Controlled NOT chain will be applied to the qubits; the first qubit is the control for the second one, the second one is the control for the third one and so on. The simplest way to see entanglement is by choosing two qubits, setting the first one to be in superposition and the second one in the |0> or |1> state.
- Teleportation: Alice will send a qubit in your desired state to Bob. You’ll choose the qubit to send to Bob, and then the algorithm will “teleport it” to Bob. Since everything’s simulated in the same machine, there will not be any real teleportation; but the algorithm is the same that would be used to teleport a qubit to the other side of the universe.

## Languages

- Q#: to develop everything on the quantum side of the algorithms implemented.
- C#: to connect the operations defined in Q# to the command line and the classical parts of the algorithms implemented.

## Contributing

Everyone is welcome to contribute to this project. Open an issue to report a bug you found or a feature you would like to see implemented (or even something **you** would be wishing to work on). The issue will be reviewed and discussed, then a pull request will be opened to work on it.

## Run the project

To run the project and edit the code, you’ll need to install the Quantum Development Kit by Microsoft first. Check the instructions to do that here: https://docs.microsoft.com/en-us/quantum/quickstarts/. Once you have the QDK set up, clone the git repository to your computer and open it in the code editor of your preference. Personally, I prefer Visual Studio for the tools it has to work with .NET projects. Be sure to run `git pull`

everytime before working on the project locally to get the latest updates.

No releases published

Comments are closed.