A couple of days back, I received an interesting email from a rather curious mind.

The author of said email apparently found my contact details from one of the conference proceeding where I had submitted a paper.

Now, the author of the email posed rather curious questions, namely

...what exactly makes a quantum computer different from normal?...numerous articles point that quantum computer are superior because they can exist in two simultaneous states, but how does that exactly make a difference?...Lastly, every machine has its limits, so why is it being flaunted around as super machine?

Admittedly, given this was second email to me from a curious student so I was rather existed to answer it. Mind you, this person was also first one to continue conversations with follow up emails.

Anyways, while I did replied answers to all his questions, to the best of my abilities, it was later that I stumbled around this excellent article "What Quantum Computers Do Faster, with Caveats". It is excellent articles that explains in short about the limitations of quantum computation. The author of this articles also uses Quantum Fourier Transform as example to explain the limitations.

One of the main idea about quantum world that I found hard to explain to him was that of superposition, something which he found surprisingly difficult to grasp; which may be attributed to his completely non-physics background.

When I had started to study about quantum information processing, I used to note down every interesting example or problem that would be capable of explaining a specific concept in a flash. Following is one of those noted example:

For example related to computer programming for understanding the superposition, one may look at a data structure called a linked list. Each data node in the list contains a pointer, to the next data node. The program traverses the list by jumping to the next data node indicated by the pointer. In a doubly-linked list, the data node contains two pointers, one for traversing to the top of the list, and another for traversing to the bottom of the list.

Another way of implementing a doubly-linked list is to use a single pointer space that contains the exclusive-or (XOR) or the two adjacent pointers. Figure below shows a link list node with pointer S that is the XOR of reference A (before) and reference B(after). To traverse the link list upward, the program XORs the current pointer (S) with the one it just left (B), and the result is the pointer of the next node (A). The same process works when traversing down the list. This superpositioning of node pointers is analogous to how the quantum states are maintained simultaneously in a quantum bit.

We can define those lists mathematically as follow:

 A = S \wedge B \uparrow


B = S \wedge A \downarrow


Earlier on, I also had bad habit of never noting down important points without due citation or source for the information. So credit for this example to original poster or author of blog post or paper, respectively. If anyone is aware of where this appears, kindly comment.

Lastly, there are two excellent articles on the Limits of Quantum Computers by Scott Aaronson here and here.