#### Overview of this book

Explore quantum chemical concepts and the postulates of quantum mechanics in a modern fashion, with the intent to see how chemistry and computing intertwine. Along the way you’ll relate these concepts to quantum information theory and computation. We build a framework of computational tools that lead you through traditional computational methods and straight to the forefront of exciting opportunities. These opportunities will rely on achieving next-generation accuracy by going further than the standard approximations such as beyond Born-Oppenheimer calculations. Discover how leveraging quantum chemistry and computing is a key enabler for overcoming major challenges in the broader chemical industry. The skills that you will learn can be utilized to solve new-age business needs that specifically hinge on quantum chemistry
Preface
Chapter 1: Introducing Quantum Concepts
Free Chapter
Chapter 2: Postulates of Quantum Mechanics
Chapter 3: Quantum Circuit Model of Computation
Chapter 5: Variational Quantum Eigensolver (VQE) Algorithm
Chapter 6: Beyond Born-Oppenheimer
Chapter 7: Conclusion
Chapter 8: References
Chapter 9:Glossary
Other Books You May Enjoy
Appendix B: Leveraging Jupyter Notebooks on the Cloud

# 3.4. Preparing a permutation symmetric or antisymmetric state

Given two qubits and , we want to build a symmetrized state that remains invariant under a permutation of the qubits and , or an antisymmetrized state that is multiplied by under a permutation of the qubits and . In this section, we show how to prepare such states in a probabilistic manner with a quantum circuit prepared and simulated with Qiskit:

• Section 3.4.1, Creating random states
• Section 3.4.2, Creating a quantum circuit and initializing qubits
• Section 3.4.3, Creating a circuit that swaps two qubits with a controlled swap gate
• Section 3.4.4, Post selecting the control qubit until the desired state is obtained
• Section 3.4.5, Examples of final symmetrized and antisymmetrized states

## 3.4.1. Creating random states

We define a function called `init_random()` that creates random 1-qubit states `s1` and `s2` that we will use later to run experiments with random states:

`def init_random...`