4

I am trying to write $n$ party GHZ state but at the end of the day, it seems like bi partite state. I am missing a detail. Here is my code

number =6
qubits = cirq.LineQubit.range(number) 
def n_party_GHZ_circuit(qubits)
      GHZ_circuit = cirq.Circuit(cirq.H(qubits[i]),
                           cirq.CNOT(qubits[i], qubits[j]))

GHZ = cirq.final_density_matrix(n_party_GHZ_circuit)

I can write it by hand with indexes but suppose that we have 10 qubits and in that case I do not want to write it by hand for all combinations. So I am trying to write a function but I couldn't.

Mark Spinelli
  • 15,789
  • 3
  • 26
  • 85
quest
  • 704
  • 4
  • 11

1 Answers1

4

How about:

import cirq
number = 6
qubits = cirq.LineQubit.range(number) 
GHZ_circuit = cirq.Circuit(cirq.H(qubits[0]))
for i in range(number-1):
    C = cirq.Circuit(cirq.CX(qubits[i], qubits[i+1] ) )
    GHZ_circuit = GHZ_circuit + C

print(GHZ_circuit)

which outputs:

0: ───H───@───────────────────
          │
1: ───────X───@───────────────
              │
2: ───────────X───@───────────
                  │
3: ───────────────X───@───────
                      │
4: ───────────────────X───@───
                          │
5: ───────────────────────X───

This will produce the state:

enter image description here

which is what 6 qubit GHZ state you want.

KAJ226
  • 14,252
  • 2
  • 13
  • 34