8 Quantum sensing: It’s not just a phase

This chapter covers:

  • Predict how quantum operations can be used to learn useful information about unknown operations with the quantum algorithm for phase kickback.
  • Create new types in Q#
  • Run Q# code from a Python host program
  • Recognize important properties and behaviors of eigenstates and phase
  • Program controlled quantum operations in Q#

8.1  Phase estimation: leveraging useful properties of qubits for measurement

Throughout the book so far, you’ve seen that games can be a really helpful way to learn quantum computing concepts. In the previous Chapter, for instance, Lady Nimue’s game with Merlin let you explore your first quantum algorithm, the Deutsch–Jozsa algorithm. In this Chapter you’ll use another game to explore how to learn the phases of quantum states using phase kickback, the quantum development technique used by Deutsch–Jozsa and many other quantum algorithms.

For this Chapter’s game, let’s go back and see what Lancelot has been up to. While Nimue and Merlin were deciding the fate of kings, you find Lancelot and the court jester Dagonet playing a guessing game where he has "borrowed" some of Nimue’s quantum tools. Since they’ve had a while to play, however, Dagonet has gotten a bit bored and wants to start incorporating quantum computing to make their game a bit more interesting.

8.1.1  Part and Partial Application

8.2  User-Defined Types

8.3  Run, snake, run: Running Q# from Python

8.4  Eigenstates and Local Phases

8.5  Controlled application: Turning global phases into local phases

8.5.1  Controlling any operation

8.6  Implementing Lancelot’s best strategy for the phase estimation game

8.7  Summary