2026. szeptember 13., vasárnap

Python csak profiknak Szuperpozició szimuláció

Ez a pyton program szimulál 4 qubitet szuperpozícióban, hagyományos számítógépen is lefut. Mivel a kvantum-szuperpozíció lényege, hogy a qubitek egyszerre több állapotban is lehetnek, a 4 qubit összesen \(2^4 = 16\) különböző állapot (a 0000-tól a 1111-ig) kombinációjaként létezik. A program létrehozza ezt a szuperpozíciót (egyenlő valószínűséget adva minden állapotnak), majd végrehajt egy "mérést", ami összeomlasztja a hullámfüggvényt egyetlen konkrét klasszikus bit-kombinációvá.
---------------------
Program forrása;
------------
import random
import math

def kvantum_szimulacio_4_qubit():
    print("--- 4 Qubit Szuperpozíció Szimuláció ---")
    
    # 1. Állapotok előkészítése
    # 4 qubit esetén 2^4 = 16 lehetséges bázisállapot van (0000-tól 1111-ig)
    n_qubits = 4
    n_states = 2**n_qubits
    
    # Egyenlő szuperpozíció esetén minden állapot valószínűségi amplitúdója: 1 / sqrt(16) = 1/4
    amplitudo = 1.0 / math.sqrt(n_states)
    valoszinuseg = amplitudo ** 2  # 1/16 = 0.0625 (azaz 6.25% állapotonként)
    
    # Kvantumállapot (hullámfüggvény) felírása szótárként: {állapot_string: amplitúdó}
    hullamfuggveny = {}
    for i in range(n_states):
        # Bináris formátumra alakítás 4 biten (pl. 5 -> '0101')
        allapot_binaris = format(i, f'0{n_qubits}b')
        hullamfuggveny[allapot_binaris] = amplitudo

    # 2. Szuperpozíció kiratása
    print("\nA rendszer tiszta szuperpozícióban van. Állapotok és valószínűségek:")
    for allapot, amp in hullamfuggveny.items():
        print(f"|{allapot}⟩ : Amplitúdó = {amp:.2f} -> Valószínűség = {valoszinuseg * 100:.2f}%")
    
    # 3. Mérés (A hullámfüggvény összeomlása)
    print("\nMérés végrehajtása... (A szuperpozíció összeomlik egyetlen állapotba)")
    
    # A klasszikus számítógépen a mérést a súlyozott véletlenszerű választással szimuláljuk
    allapotok = list(hullamfuggveny.keys())
    valoszinusegek = [valoszinuseg] * n_states # Minden állapothoz ugyanaz a valószínűség tartozik
    
    meresi_eredmeny = random.choices(allapotok, weights=valoszinusegek, k=1)[0]
    
    print(f"A mért eredmény: |{meresi_eredmeny}⟩")

# Program futtatása
if __name__ == "__main__":
    kvantum_szimulacio_4_qubit()

---------------
Magyarázat;

Egy klasszikus számítógépnek a szuperpozíció megtartásához minden lehetséges állapotot külön kell tárolnia a memóriában. 4 qubitnél ez \(2^4 = 16\) érték. (Ha 30 qubitünk lenne, már \(2^{30}\), azaz több mint 1 milliárd állapotot kellene a hagyományos PC-nek fejben tartania).

Amplitúdó és Valószínűség: 

A kvantummechanikában az állapotok előtt álló számok (amplitúdók) négyzete adja meg a valóságos mérési valószínűséget. A programban mind a 16 állapotnak pontosan 6,25% esélye van arra, hogy méréskor felbukkanjon.

Mérés: 

Amíg a mérés meg nem történik, a program listázza az összes lehetőséget (szuperpozíció). A random.choices fedi le a mérés fizikai aktusát, amikor a sokszínű kvantumállapotból hirtelen egy darab fix, klasszikus bit-sorozat lesz.
------------------
Kapott eredmény;

--- 4 Qubit Szuperpozíció Szimuláció ---
Rendszer dimenziója (lehetséges állapotok száma): 16

Állapot (Bináris)  | Amplitúdó                 | Mérési valószínűség
----------------------------------------------------------------------
|0000>             | 0.2500                   | 6.25%
|0001>             | 0.2500                   | 6.25%
|0010>             | 0.2500                   | 6.25%
|0011>             | 0.2500                   | 6.25%
|0100>             | 0.2500                   | 6.25%
|0101>             | 0.2500                   | 6.25%
|0110>             | 0.2500                   | 6.25%
|0111>             | 0.2500                   | 6.25%
|1000>             | 0.2500                   | 6.25%
|1001>             | 0.2500                   | 6.25%
|1010>             | 0.2500                   | 6.25%
|1011>             | 0.2500                   | 6.25%
|1100>             | 0.2500                   | 6.25%
|1101>             | 0.2500                   | 6.25%
|1110>             | 0.2500                   | 6.25%
|1111>             | 0.2500                   | 6.25%

======================================================================
MÉRÉS: A hullámfüggvény összeomlott! A mért állapot: |1000>
======================================================================

Nincsenek megjegyzések:

Megjegyzés küldése