La réponse exacte dépend du type exact de superposition que vous souhaitez. Les réponses par pyramides et Niel vous donnent à la fois quelque chose comme
A ∑t = 1n|Ft( x )⟩ ⊗ | Ft⟩
Ici, j'ai suivi Niel pour étiqueter les différentes fonctions , f 2 , etc., avec n comme nombre total de fonctions que vous souhaitez superposer. J'ai également utilisé F t pour désigner une description de la fonction f t en tant que programme stocké. Le A est exactement le nombre qui doit être là pour que l'état soit normalisé.F1F2nFtftA
Notez qu'il ne s'agit pas simplement d'une superposition de . Il est enchevêtré avec le programme enregistré. Si vous deviez tracer le programme stocké, vous auriez juste un mélange de f t ( x ) . Cela signifie que le programme stocké pourrait constituer des «ordures», ce qui empêche les effets d'interférence sur lesquels vous pourriez compter. Ou peut-être pas. Cela dépend de la façon dont cette superposition sera utilisée dans votre calcul.ft(x)ft(x)
Si vous voulez vous débarrasser des ordures, les choses deviennent plus délicates. Par exemple, supposons que ce que vous voulez est un unitaire qui a pour effetU
U:|x⟩⊗|0⟩⊗N→A∑t=1n|ft(x)⟩
pour toutes les entrées possibles (qui, je suppose, sont des chaînes de bits écrites dans la base de calcul). Notez que j'ai également inclus quelques qubits vides du côté entrée, au cas où les fonctions auraient des sorties plus longues que les entrées.x
A partir de cela, nous pouvons trouver très rapidement une condition que les fonctions doivent satisfaire: puisque les états d'entrée forment un ensemble orthogonal, il en va de même des sorties. Cela mettra une restriction importante sur les types de fonctions qui peuvent être combinées de cette façon.