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%20%23%20wird%20nur%20ben%C3%B6tigt%20wenn%20Sie%20mit%20marimo%20Notebooks%20arbeiten%0A%0A%20%20%20%20return%20(mo%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_(mo%2C%20qml)%3A%0A%20%20%20%20mo.md(f%22%22%22%0A%20%20%20%20Zun%C3%A4chst%20m%C3%BCssen%20einige%20Module%20importiert%20werden.%0A%20%20%20%20Schauen%20Sie%20das%20Ihre%20installierten%20Versionen%20nicht%20zu%20weit%20von%20diesen%20hier%20abweichen%3A%0A%20%20%20%20*%20%7Bqml.__version__%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%20import%20pennylane%20as%20qml%0A%20%20%20%20from%20qiskit.visualization%20import%20plot_histogram%0A%0A%20%20%20%20return%20plot_histogram%2C%20qml%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%20In%20pennylane%20wird%20zu%20beginn%20ein%20Device%20angelegt%2C%0A%20%20%20%20der%20string%20%22default.qubit%22%20sagt%20dabei%20aus%2C%20das%20wir%20einen%20State%20Vektor%20Simulator%20verwenden.%0A%20%20%20%20Qubits%20werden%20in%20Pennylane%20als%20wires%20bezeichnet%2C%0A%20%20%20%20%60wires%20%3D%205%60%20legt%20den%20Simulator%20f%C3%BCr%205%20Qubits%20an.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(qml)%3A%0A%20%20%20%20dev%20%3D%20qml.device(%22default.qubit%22%2C%20wires%20%3D%205)%0A%20%20%20%20return%20(dev%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%20Schaltkreise%20werden%20als%20Python%20Funktionen%20definiert%20und%20mit%20%60%40qml.qnode%60%20dekoriert.%20%60set_shots%60%20legt%20dabei%20fest%20wie%20viele%20samples%20f%C3%BCr%20%60counts%60%20insgesamt%20stattfinden%20sollen.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(dev%2C%20qml)%3A%0A%20%20%20%20%40qml.set_shots(1000)%0A%20%20%20%20%40qml.qnode(dev)%0A%20%20%20%20def%20bell()%3A%0A%20%20%20%20%20%20%20%20qml.H(wires%3D0)%0A%20%20%20%20%20%20%20%20qml.CNOT(wires%3D%5B0%2C%201%5D)%0A%20%20%20%20%20%20%20%20return%20qml.counts(wires%3D%5B0%2C1%5D)%0A%0A%20%20%20%20return%20(bell%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%20Um%20den%20Schaltkreis%20nun%20auszuf%C3%BChren%2C%20gen%C3%BCgt%20der%20Funktionsaufruf.%20Die%20R%C3%BCckgabe%20ist%20dann%20ein%20Dictionary%20der%20Messergebnisse%20und%20deren%20absolute%20H%C3%A4ufigkeit.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(bell)%3A%0A%20%20%20%20res%20%3D%20bell()%0A%20%20%20%20res%0A%20%20%20%20return%20(res%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%20Wie%20zu%20erkennen%20ist%2C%20liegt%20die%20absolute%20H%C3%A4ufigkeit%20der%20beiden%20Ergebnisse%20%2200%22%20und%20%2211%22%2C%20nahe%20der%20zu%20erwartenden%20Verteilung%20von%20%60%7B%2200%22%3A%20500%2C%20%2211%22%3A%20500%7D%60.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(plot_histogram%2C%20res)%3A%0A%20%20%20%20plot_histogram(%5Bres%2C%20%7B%2200%22%3A%20500%2C%20%2211%22%3A%20500%7D%5D%2C%20legend%3D%5B%22sampler%22%2C%20%22expected%22%5D)%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
2ad95f3bde0afb47da29d494371b82df