sandbox/qc/quil/bell/bell.py

35 lines
988 B
Python
Executable File

#!/usr/bin/env python3
# bell.py tries to run the same Bell state program demonstrating simple
# entanglement of qubits.
from pyquil.quil import Program
from pyquil.api import QVMConnection
from pyquil.gates import CNOT, H
def main():
qvm = QVMConnection()
print('Constructing program.')
p = Program()
p.inst(H(0)).inst(CNOT(0, 1)).measure(0, 0).measure(1, 1)
print('Constructed program:')
print('--------------------')
print(p)
print('--------------------')
print('\nRunning program on simulator.')
results = qvm.run(p, trials=1000)
stats = {0: 0, 1: 0, 'agreement': 0}
for result in results:
if result[0] == 0:
stats[0] += 1
if result[0] == 1:
stats[1] += 1
if result[0] == result[1]:
stats['agreement'] += 1
print('Results: |0>: {:d} |1>: {:d} agree: {:d}'.format(
stats[0], stats[1], stats['agreement']))
if __name__ == '__main__':
main()