# Distinguishing Quantum States

@[section]({
    "id": "distinguishing_states__overview",
    "title": "Overview"
})

This kata is designed to get you familiar with the concept of measurements and using them for analyzing quantum states and with Q# programming.

**This kata covers the following topics:**

- single-qubit measurements,
- distinguishing orthogonal and non-orthogonal states.

**What you should know to start working on this kata:**

- Dirac notation for single-qubit and multi-qubit quantum systems
- Basic single-qubit and multi-qubit gates
- Single-qubit quantum measurements and their effect on quantum systems

@[section]({
    "id": "distinguishing_states__orthogonal_states",
    "title": "Distinguishing Orthogonal States"
})

@[exercise]({
    "id": "distinguishing_states__zero_one",
    "title": "|0〉 or |1〉?",
    "path": "./zero_one/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__plus_minus",
    "title": "|+〉 or |-〉?",
    "path": "./plus_minus/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__a_b",
    "title": "|A〉 or |B〉?",
    "path": "./a_b/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__zerozero_oneone",
    "title": "|00〉 or |11〉?",
    "path": "./zerozero_oneone/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__four_basis_states",
    "title": "Distinguish Four Basis States",
    "path": "./four_basis_states/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__two_basis_states_bit_strings",
    "title": "Distinguish Two Basis States Given by Bit Strings",
    "path": "./two_basis_states_bit_strings/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__two_superposition_states_bit_strings_one",
    "title": "Distinguish Two States Given by Two Arrays of Bit Strings in One Measurement",
    "path": "./two_superposition_states_bit_strings_one/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__two_superposition_states_bit_strings",
    "title": "Distinguish Two States Given by Two Arrays of Bit Strings",
    "path": "./two_superposition_states_bit_strings/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__all_zeros_w",
    "title": "|0...0〉 State or W State?",
    "path": "./all_zeros_w/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__ghz_w",
    "title": "GHZ State or W State?",
    "path": "./ghz_w/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__four_bell_states",
    "title": "Distinguish Four Bell States",
    "path": "./four_bell_states/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__four_orthogonal_two_qubit",
    "title": "Distinguish Four Two-Qubit States",
    "path": "./four_orthogonal_two_qubit/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__four_orthogonal_two_qubit_part_two",
    "title": "Distinguish Four Two-Qubit States - 2",
    "path": "./four_orthogonal_two_qubit_part_two/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__two_orthogonal_three_qubit",
    "title": "Distinguish Two Three-Qubit States",
    "path": "./two_orthogonal_three_qubit/",
    "qsDependencies": [
        "../KatasLibrary.qs",
        "./Common.qs"
    ]
})

@[section]({
    "id": "distinguishing_states__nonorthogonal_states",
    "title": "Distinguishing Non-orthogonal States"
})

@[exercise]({
    "id": "distinguishing_states__zero_plus",
    "title": "|0〉 or |+〉?",
    "path": "./zero_plus/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__zero_plus_inc",
    "title": "|0〉, |+〉 or Inconclusive?",
    "path": "./zero_plus_inc/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[exercise]({
    "id": "distinguishing_states__peres_wooters_game",
    "title": "Peres/Wooters game",
    "path": "./peres_wooters_game/",
    "qsDependencies": [
        "../KatasLibrary.qs"
    ]
})

@[section]({
    "id": "distinguishing_states__conclusion",
    "title": "Conclusion"
})

Congratulations! In this kata you learned to use measurements and basic quantum computing gates to distinguish quantum states. Here are a few key concepts to keep in mind:

- TODO
