




"""simple docstring"""
import qiskit





def     UpperCAmelCase					(      A__:     int = 2  )	->  qiskit.result.counts.Counts:
			__lowerCamelCase       :						Union[str, Any]													=					qubits

			# Using Aer's simulator
			__lowerCamelCase       :						List[Any]													=					qiskit.Aer.get_backend('aer_simulator'  )

			# Creating a Quantum Circuit acting on the q register
			__lowerCamelCase       :						Dict													=					qiskit.QuantumCircuit(_UpperCAmelCase				,					_UpperCAmelCase  )

			# Adding a H gate on qubit 0 (now q0 in superposition)
			circuit.h(0  )

			for i in range(1				,					_UpperCAmelCase  ):
						# Adding CX (CNOT) gate
						circuit.cx(i - 1				,					_UpperCAmelCase  )

			# Mapping the quantum measurement to the classical bits
			circuit.measure(list(range(_UpperCAmelCase  )  )				,					list(range(_UpperCAmelCase  )  )  )

			# Now measuring any one qubit would affect other qubits to collapse
			# their super position and have same state as the measured one.

			# Executing the circuit on the simulator
			__lowerCamelCase       :						Optional[Any]													=					qiskit.execute(_UpperCAmelCase				,					_UpperCAmelCase				,					shots=1000  )

			return job.result().get_counts(_UpperCAmelCase  )


if __name__ == "__main__":
					print(F"""Total count for various states are: {quantum_entanglement(3)}""")








'''simple docstring'''





import qiskit





def   a_   (		_UpperCAmelCase    :      int = 2				)    ->  qiskit.result.counts.Counts:
      __snake_case :   Union[str, Any]													=    qubits

      # Using Aer's simulator
      __snake_case :   List[Any]													=    qiskit.Aer.get_backend('aer_simulator'				)

      # Creating a Quantum Circuit acting on the q register
      __snake_case :   Dict													=    qiskit.QuantumCircuit(_UpperCAmelCase ,_UpperCAmelCase				)

      # Adding a H gate on qubit 0 (now q0 in superposition)
      circuit.h(0				)

      for i in range(1 ,_UpperCAmelCase				):
            # Adding CX (CNOT) gate
            circuit.cx(i - 1 ,_UpperCAmelCase				)

      # Mapping the quantum measurement to the classical bits
      circuit.measure(list(range(_UpperCAmelCase				)				) ,list(range(_UpperCAmelCase				)				)				)

      # Now measuring any one qubit would affect other qubits to collapse
      # their super position and have same state as the measured one.

      # Executing the circuit on the simulator
      __snake_case :   Optional[Any]													=    qiskit.execute(_UpperCAmelCase ,_UpperCAmelCase ,shots=10_00				)

      return job.result().get_counts(_UpperCAmelCase				)


if __name__ == "__main__":
    print(F"""Total count for various states are: {quantum_entanglement(3)}""")



