35 lines
988 B
Python
Executable File
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() |