2017-06-21 7 views
4

Les seuls endroits que je sais que vous pouvez jouer avec l'informatique quantique sont le google quantum playground et le ibm's quantum experience. Alors que le premier utilise qscript et les deuxièmes langues qasm (qui sont faciles à apprendre), leur utilisation ne diffère pas beaucoup de la programmation régulière (en dehors des quelques fonctions spécifiques). Voici l'explication wikipedia:La différence entre qubit et bit peut-elle être expliquée avec un simple exemple de code?

Un qubit a quelques similitudes avec un bit classique, mais il est globalement très différent. Il y a deux résultats possibles pour la mesure d'un qubit - habituellement 0 et 1, comme un bit. La différence est que, alors que l'état d'un bit est 0 ou 1, l'état d'un qubit peut aussi être une superposition des deux. Il est possible de coder entièrement un bit dans un bit. Cependant, un qubit peut contenir encore plus d'informations, par ex. jusqu'à deux bits en utilisant le codage superdense.

Pour un système de n composants, une description complète de son état en physique classique ne nécessite que n bits, alors qu'en physique quantique il nécessite 2^n - 1 nombres complexes.

Qui plus ou moins clair.Mais comment cela peut être montré avec un exemple de code?

+2

Vous pourriez trouver [mon simulateur de circuit quantique à glisser-déposer Quirk] (http://algassert.com/quirk) utile. –

Répondre

6

Voici un code classique qui se déplie des pièces et compte combien de têtes vous obtenez:

def coin_count(): 
    bit = False 
    counter = 0 
    for _ in range(500): 
     bit ^= random() < 0.5 # False → 50% False, 50% True 
           # True → 50% False, 50% True 
     if bit: 
      counter += 1 
    return counter 

Si vous exécutez ce code plusieurs fois et faire un histogramme, le résultat sera d'environ un Binomial distribution:

Classical Binomial distribution

maintenant, voici quelques pseudo-code qui fait essentiellement la même chose, except the coin is replaced by a qubit. Nous "retournons le qubit" en appliquant l'opération Hadamard.

def hadamard_coin_count(): 
    qubit = qalloc() 
    counter = 0 
    for _ in range(500): 
     apply Hadamard to qubit # |0⟩ → √½|0⟩ + √½|1⟩ 
           # |1⟩ → √½|0⟩ - √½|1⟩ 
     if qubit: # (not a measurement; controls nested operations) 
      counter += 1 # (happens only in some parts of the superposition) 
    return measure(counter) # (note: counter was in superposition) 

Pour ce faire, plusieurs fois, tracer la distribution, et vous obtenez something very different:

quantum walk distribution

Il est clair que ces extraits de code font des choses très différentes en dépit de leur similitude de surface. Les promenades quantique n'agissent pas de la même manière que les marches aléatoires classiques. Cette différence est utile dans certains algorithmes.

+1

explication complète.Merci. Je vais prendre le temps de l'exécuter plusieurs fois et de réfléchir par-dessus. – npocmaka