pip install cirq #Test successful installation by
printing out the Sycamore device.import cirq_google |
q0=cirq.NamedQubit("q0")
q1=cirq.NamedQubit("q1")
The above operation will create 2 Qubits q0 & q1. Other ways
to
create Qubits are shown below:q3 = cirq.LineQubit(4)q0, q1, q2 = cirq.LineQubit.range(3)qubits16 = cirq.GridQubit.square(8)q01= cirq.GridQubit(0,1)circuit=cirq.Circuit(cirq.H(q0), cirq.CNOT(q0,q1),
cirq.measure(q0,q1))
print(circuit)simulator=Cirq.Simulator()result=simulator.run(circuit,repetitions=20)
print(result)cirq.Circuit()append function
# Generate the Bell State:
# sqrt(2) * ( |00> + |11> )
bell_circuit = cirq.Circuit()
a, b = cirq.LineQubit.range(2)
bell_circuit.append(cirq.H(a))
bell_circuit.append(cirq.CNOT(a,b))
# Initialize Simulator
s=cirq.Simulator()
print('Simulate the circuit:')
results=s.simulate(bell_circuit)
print(results)
# add a measurement at the end for sampling purpose
bell_circuit.append(cirq.measure(a, b, key='result'))
print('Sample the circuit:')
samples=s.run(bell_circuit, repetitions=1000)
>>> print(cirq.unitary(cirq.X)) #Unitary of the X gate
[[0.+0.j 1.+0.j]
[1.+0.j 0.+0.j]]
>>>
>>> a, b = cirq.LineQubit.range(2) #Unitary of SWAP operator
on two qubits
>>> print(cirq.unitary(cirq.SWAP(a, b)))
[[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 1.+0.j 0.+0.j]
[0.+0.j 1.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 0.+0.j 1.+0.j]]
>>>
>>> print(cirq.unitary(cirq.Circuit(cirq.X(a), cirq.SWAP(a,
b)))) #unitary of a random circuit we created by applying X and SWAP
gate
[[0.+0.j 0.+0.j 1.+0.j 0.+0.j]
[1.+0.j 0.+0.j 0.+0.j 0.+0.j]
[0.+0.j 0.+0.j 0.+0.j 1.+0.j]
[0.+0.j 1.+0.j 0.+0.j 0.+0.j]]
Moment:
In Cirq, a Moment is a fundamental unit of a quantum circuit,
representing a collection of operations that operate on different sets
of qubits.Each Moment can contain multiple operations, such as gates,
and is structured to execute these operations during a specific time
slice.
[circuit] [Operations] [qubit]