Aufgabe 2


In [1]:
function spinner(N)
    spins = Array(Int, 2^N, N)
    for i in 0:2^N-1
        base2 = bin(i,N)
        for j in 1:N
            if base2[j] == '0'
                spins[i+1,j] = 0
            else
                spins[i+1,j] = 1
            end
        end
    end
    for Sz in .5*N:-1:-.5*N
        println("Sz_ges = $Sz")
        for l in 1:2^N
            if sum(spins[l,:]-.5) == Sz
                psi = ""
                for val in spins[l,:]
                    psi = string(psi, val)
                end
                println("  l = $l, |psi> = |$psi>")
            end
        end
    end 
end
            
spinner(4)


Sz_ges = 2.0
  l = 16, |psi> = |1111>
Sz_ges = 1.0
  l = 8, |psi> = |0111>
  l = 12, |psi> = |1011>
  l = 14, |psi> = |1101>
  l = 15, |psi> = |1110>
Sz_ges = 0.0
  l = 4, |psi> = |0011>
  l = 6, |psi> = |0101>
  l = 7, |psi> = |0110>
  l = 10, |psi> = |1001>
  l = 11, |psi> = |1010>
  l = 13, |psi> = |1100>
Sz_ges = -1.0
  l = 2, |psi> = |0001>
  l = 3, |psi> = |0010>
  l = 5, |psi> = |0100>
  l = 9, |psi> = |1000>
Sz_ges = -2.0
  l = 1, |psi> = |0000>