f994dae5ec | ||
---|---|---|
.. | ||
README.md | ||
ReferenceImplementation.qs | ||
RippleCarryAdder.csproj | ||
RippleCarryAdder.ipynb | ||
RippleCarryAdder.sln | ||
Tasks.qs | ||
Tests.qs | ||
Workbook_RippleCarryAdder.ipynb |
README.md
Welcome!
This kata explores ripple-carry addition on a quantum computer.
- The simplest quantum adder, covered in part I, closely mirrors its classical counterpart, using the same basic components and the same algorithm.
- Part II explores building an in-place adder.
- A more complex version of an in-place adder covered in part III of the kata uses a different algorithm to reduce the number of ancillary qubits needed.
- Part IV covers building an in-place quantum subtractor.
- Part V covers addition and subtraction modulo 2ᴺ.
You can run the RippleCarryAdder kata as a Jupyter Notebook!
Theory
- Classical binary adder on Wikipedia.
- Part 2 of the paper on quantum binary addition by Thomas G. Draper explains how to adapt the classical adder to a quantum environment.
- Paper on improved ripple carry addition by Steven A. Cuccaro, Thomas G. Draper, Samuel A. Kutin, and David Petrie Moulton explains the principle behind the adder in part III of the kata.
Q#
It is recommended to complete the BasicGates kata before this one to get familiar with the basic gates used in quantum computing. The list of basic gates available in Q# can be found at Microsoft.Quantum.Intrinsic.
For the syntax of flow control statements in Q#, see Q# iterations and Q# conditional branching documentation.