Die genaue Antwort hängt von der genauen Art der gewünschten Überlagerung ab. Die Antworten von Pyramiden und Niel geben Ihnen so etwas wie
A ∑t = 1n|ft( x )⟩ ⊗ | F.t⟩
Hier bin ich Niel bei der Beschriftung der verschiedenen Funktionen , f 2 usw. gefolgt , wobei n die Gesamtzahl der Funktionen ist, die Sie überlagern möchten. Außerdem habe ich F t verwendet, um eine Beschreibung der Funktion f t als gespeichertes Programm zu bezeichnen. Das A ist genau die Zahl, die vorhanden sein muss, damit der Zustand normalisiert werden kann.f1f2nF.tftEIN
Beachten Sie, dass dies nicht einfach eine Überlagerung von . Es ist mit dem gespeicherten Programm verwickelt. Wenn Sie das gespeicherte Programm ausfindig machen würden, hätten Sie nur eine Mischung aus f t ( x ) . Dies bedeutet, dass das gespeicherte Programm "Müll" darstellen kann, wodurch Interferenzeffekte vermieden werden, auf die Sie möglicherweise zählen. Oder vielleicht auch nicht. Dies hängt davon ab, wie diese Überlagerung in Ihrer Berechnung verwendet wird.ft( x )ft( x )
Wenn Sie den Müll loswerden wollen, wird es schwieriger. Angenommen, Sie möchten ein einheitliches , das den Effekt hatU.
U.::| x⟩xotime ; | 0 ⟩⊗ N.→ A ∑t = 1n|ft( x )⟩
für alle möglichen Eingaben (von denen ich annehme, dass es sich um in der Berechnungsbasis geschriebene Bitfolgen handelt). Beachten Sie, dass ich auch einige leere Qubits auf der Eingangsseite eingefügt habe, falls die Funktionen längere Ausgänge als Eingänge haben.x
Daraus können wir sehr schnell eine Bedingung finden, die die Funktionen erfüllen müssen: Da die Eingangszustände eine orthogonale Menge bilden, müssen auch die Ausgänge eine Bedingung bilden. Dies wird die Arten von Funktionen, die auf diese Weise kombiniert werden können, erheblich einschränken.