
Wenige wissen, dass man mit der japanischen Programmiersprache Ruby heute schon Quantencomputing betreiben kann.
Wer einen Rubyinterpreter auf seinem Computer installiert hat, kann das folgende Experiment nachvollziehen, das von Erwin Schrödinger inspiriert ist. (Siehe auch meinen Beitrag aus dem Jahr 1997)
In der Quantenwelt sind Zustände ineinander verschränkt. In Ruby geht das auch. Wir erzeugen einen ineinander verschränkten Quantenhash:
q = Hash.new Hash.new
In diesen Hash speichern wir eine Box mit einer Katze:
q[:box][:cat] = 'Miau'
Geht es der Katze gut?
q[:box][:cat] → 'Miau'
In unserem Experiment müssen wir den Zerfall eines α-Teilchen mit einer Wahrscheinlichkeit von 0,5 simulieren. Wichtig für das Experiment: wir dürfen keine Kenntnis von dem Ergebnis erhalten, sonst kollabiert die Wellenfunktion. Normalerweise zeigt uns der Rubyinterpreter jedoch jeden Wert an. Wir lösen diese Aufgabe durch eine Konjunktion, die unabhängig vom Zufallswert immer „Falsch“ liefert.
(rand > 0.5) && false → false
Jetzt sollte sich die Katze nach Schrödinger in einem speziellen Zustand der Superposition befinden, weder lebendig, noch tot.
Was sagt eigentlich unser Quantenhash dazu?
q → {}
Nanu, eben hat die Katze noch miaut, ist der Hash wirklich leer?
q.empty? → true
Haben wir das Ergebnis nicht richtig verstanden? Fragen wir doch mal Herrn Schrödinger nach seiner Katze.
q[:schroedinger][:cat] → 'Miau'
Die Katze ist offenbar in einer neuen Wirklichkeit wieder aufgetaucht. Aber wie? War es der Tunneleffekt, oder hat Everett mit seiner „Viele-Welten Theorie“ doch recht?
Mehr dazu demnächst auf diesem Blog.
Ergänzung
Alle die mehr über Programmiersprachen für Quantencomputing wissen wollen empfehle ich das Video-Interview mit Benoît Valiron als Einstieg. Schon weiter fortgeschritten als Ruby ist die Haskell-basierte Sprache Quipper.
Donnerstag, der 19. November 2015 @ 17:50
Nothing is strange here. The truth is that in the beginning you’re creating hash having default value set as new hash. So once you write q[:some] = ‘asd’ then q[:other] will also be ‘asd’. In fact be calling q[:some][:thing] = “other” you’re just setting default value to the first Hash.new being {:thing => “other”}. Then the first hash is always empty, but if you call q[:whatever_you_want] then the answer will be the default value {:thing => “other”}.
Donnerstag, der 19. November 2015 @ 20:02
So you think that all this has nothing to do with quantum theory? What are my other readers thinking?
Freitag, der 20. November 2015 @ 17:02
can you learn quantum computing on your own with no mathematical background?you may reply to my email.
Freitag, der 20. November 2015 @ 19:01
You will not necessarily need it, but quantum computing will use concepts from higher mathematics, so it will be easier to learn for people with good mathematical background.