#!/usr/bin/env python3"""Build a half-adder quantum circuit that takes two bits as input,encodes them into qubits, then runs the half-adder circuit calculatingthe sum and carry qubits, observed over 1000 runs of the experiment.References:https://en.wikipedia.org/wiki/Adder_(electronics)https://qiskit.org/textbook/ch-states/atoms-computation.html#4.2-Remembering-how-to-add-"""import qiskit as qdef half_adder(bit0: int, bit1: int) -> q.result.counts.Counts:""">>> half_adder(0, 0){'00': 1000}>>> half_adder(0, 1){'01': 1000}>>> half_adder(1, 0){'01': 1000}>>> half_adder(1, 1){'10': 1000}"""# Use Aer's qasm_simulatorsimulator = q.Aer.get_backend("qasm_simulator")qc_ha = q.QuantumCircuit(4, 2)# encode inputs in qubits 0 and 1if bit0 == 1:qc_ha.x(0)if bit1 == 1:qc_ha.x(1)qc_ha.barrier()# use cnots to write XOR of the inputs on qubit2qc_ha.cx(0, 2)qc_ha.cx(1, 2)# use ccx / toffoli gate to write AND of the inputs on qubit3qc_ha.ccx(0, 1, 3)qc_ha.barrier()# extract outputsqc_ha.measure(2, 0) # extract XOR valueqc_ha.measure(3, 1) # extract AND value# Execute the circuit on the qasm simulatorjob = q.execute(qc_ha, simulator, shots=1000)# Return the histogram data of the results of the experiment.return job.result().get_counts(qc_ha)if __name__ == "__main__":counts = half_adder(1, 1)print(f"Half Adder Output Qubit Counts: {counts}")
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。