Quantum Computation And Quantum Information by Michael Nielsen, Michael A. Nielsen & Isaac L. Chuang