import%20marimo%0A%0A__generated_with%20%3D%20%220.23.16%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20from%20importlib.metadata%20import%20version%0A%0A%20%20%20%20return%20mo%2C%20version%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20version)%3A%0A%20%20%20%20mo.md(rf%22%22%22%0A%20%20%20%20%7Bversion(%22qrisp%22)%20%3D%20%7D%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20from%20qrisp%20import%20QuantumFloat%2C%20QuantumBool%2C%20h%0A%0A%20%20%20%20return%20QuantumBool%2C%20QuantumFloat%2C%20h%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Im%20folgenden%20wird%20eine%20QuantumFloat%20variable%20definiert%2C%0A%20%20%20%20im%20Schaltkreis%20der%20zu%20diesem%20Zeitpunkt%20%22verborgen%22%20ist%2C%20wird%20die%20entsprechende%20anzahl%20an%20Qubits%20reserviert.%0A%0A%20%20%20%20Recherchieren%20Sie%20was%20die%20Parameter%20msize%20exponent%20und%20signed%20in%20der%20Definition%20bedeuten.%0A%20%20%20%20in%20Zeile%202%20wird%20die%20Quantenvariable%20initialisiert%2C%20Qrisp%20f%C3%BCgt%20den%20Schaltkreis%20automatisch%20die%20richtigen%20Gatter%20hinzu%20um%20die%20Qubits%20in%20den%20jeweiligen%20Zustand%20zu%20bringen.%0A%0A%20%20%20%20Qrisp%20gibt%20uns%20die%20M%C3%B6glichkeit%20wie%20schon%20in%20Qiskit%20und%20Pennylane%20Gatter%20auf%20die%20Qubits%20anzuwenden%2C%0A%20%20%20%20hier%20exemplarisch%20das%20Hadamard%20Gatter%20auf%20die%20Qubits%200%20und%204%20der%20Quantenvariable.%0A%0A%20%20%20%20Mit%20%60print%60%20l%C3%A4sst%20sich%20der%20Statevector%20betrachten.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(QuantumFloat%2C%20h)%3A%0A%20%20%20%20qf%20%3D%20QuantumFloat(msize%20%3D%204%2C%20exponent%20%3D%20-2%2C%20signed%20%3D%20True)%0A%20%20%20%20qf%5B%3A%5D%20%3D%200%0A%20%20%20%20h(qf%5B0%5D)%0A%20%20%20%20h(qf%5B4%5D)%0A%20%20%20%20print(qf)%0A%20%20%20%20return%20(qf%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Neben%20QuantumFloat%20gibt%20es%20auch%20noch%20andere%20Datentypen%2C%20z.B.%20QuantumBool.%20Das%20Konzept%20bleibt%20das%20Gleiche.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(QuantumBool%2C%20h)%3A%0A%20%20%20%20qb%20%3D%20QuantumBool()%0A%20%20%20%20qb%5B%3A%5D%20%3D%20True%0A%20%20%20%20h(qb)%0A%20%20%20%20print(qb)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Wie%20im%20Folgenden%20zu%20sehen%20ist%2C%20reserviert%20Qrisp%20auch%20implizit%20Qubits%20wenn%20diese%20Notwendig%20sind%20um%20berechnungen%20durch%20zuf%C3%BChren.%0A%0A%20%20%20%20%3E%20Achtung!%0A%20%20%20%20%3E%0A%20%20%20%20%3E%20Der%20Schaltkreis%20wird%20schnell%20sehr%20gro%C3%9F.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(qf)%3A%0A%20%20%20%20qb2%20%3D%20qf%20%3C%3D%200.2%0A%20%20%20%20print(qb2)%0A%20%20%20%20return%20(qb2%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Wenn%20Sie%20den%20Schaltkreis%20sehen%20m%C3%B6chten%2C%20k%C3%B6nnen%20Sie%20mit%20%60print%60%20die%20QuantumSession%20(qs)%20einer%20Variablen%20ausgeben%20lassen.%0A%20%20%20%20Hier%20sind%20alle%20Qubits%20die%20zur%20berechnung%20notwendig%20waren%20enthalten.%0A%0A%20%20%20%20Das%20hei%C3%9Ft%20auch%20die%20Qubits%20der%20anderen%20Variablen%20die%20implizit%20angelegt%20wurden%2C%20oder%20die%20mit%20einander%20%22Verschaltet%22%20wurden.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(qb2)%3A%0A%20%20%20%20print(qb2.qs)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo)%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Diesen%20Schaltkreis%20von%20Hand%20anzulegen%20h%C3%A4tte%20vermutlich%20einen%20Moment%20gedauert%2C%20mit%20Qrisp%20sind%20es%20unter%2010%20Zeilen%20Code%20gewesen.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
83941af5a3ab83e3365798011bb4ef85