

"""simple docstring"""






import math

import qiskit
from qiskit import Aer, ClassicalRegister, QuantumCircuit, QuantumRegister, execute
def       UpperCamelCase					(			_lowerCAmelCase     :						int = 1,  _lowerCAmelCase     :						int = 1 )				->			qiskit.result.counts.Counts:
	if isinstance(_lowerCAmelCase,  _lowerCAmelCase ) or isinstance(_lowerCAmelCase,  _lowerCAmelCase ):
		raise TypeError("""inputs must be integers.""" )
	if (bit_a < 0) or (bit_a < 0):
		raise ValueError("""inputs must be positive.""" )
	if (math.floor(_lowerCAmelCase ) != bit_a) or (math.floor(_lowerCAmelCase ) != bit_a):
		raise ValueError("""inputs must be exact integers.""" )
	if (bit_a > 1) or (bit_a > 1):
		raise ValueError("""inputs must be less or equal to 1.""" )

	# build registers
	_UpperCAmelCase    :							Dict									=					QuantumRegister(2,  """qr""" )
	_UpperCAmelCase    :							Any									=					ClassicalRegister(2,  """cr""" )

	_UpperCAmelCase    :							Union[str, Any]									=					QuantumCircuit(_lowerCAmelCase,  _lowerCAmelCase )

	# entanglement the qubits
	quantum_circuit.h(1 )
	quantum_circuit.cx(1,  0 )

	# send the information
	_UpperCAmelCase    :							int									=					str(_lowerCAmelCase ) + str(_lowerCAmelCase )

	if c_information == "11":
		quantum_circuit.x(1 )
		quantum_circuit.z(1 )
	elif c_information == "10":
		quantum_circuit.z(1 )
	elif c_information == "01":
		quantum_circuit.x(1 )
	else:
		quantum_circuit.i(1 )

	# unentangled the circuit
	quantum_circuit.cx(1,  0 )
	quantum_circuit.h(1 )

	# measure the circuit
	quantum_circuit.measure(_lowerCAmelCase,  _lowerCAmelCase )

	_UpperCAmelCase    :							str									=					Aer.get_backend("""aer_simulator""" )
	_UpperCAmelCase    :							str									=					execute(_lowerCAmelCase,  _lowerCAmelCase,  shots=1000 )

	return job.result().get_counts(_lowerCAmelCase )


if __name__ == "__main__":
						print(F'''Counts for classical state send: {superdense_coding(1,1)}''')








"""simple docstring"""






import safs






class     _UpperCAmelCase			(		safs.SaFileSystem):
			pass





