나는 단지 사용자가 양자 컴퓨터에 대한 자신의 정의 게이트를 만들 수있는 기능사용자가 다양한 항목을 입력하고 숫자가 적은 배열로 작업하게하려면 어떻게해야합니까?
def customop(qstat):
num1 = float(input("Please input a number (no pi, e, etc) for the first number in your matrix (row 1 column 1): "))
num2 = float(input("Number for matrix - row 1 column 2: "))
num3 = float(input("Number for matrix - row 2 column 1: "))
num4 = float(input("Number for matrix - row 2 column 2: "))
matrix = np.array([[num1,num3],[num2,num4]])
matrix2 = matrix.conj().T
result = np.dot(matrix, matrix2)
identity = np.identity(2)
if np.array_equal(result, identity) == True:
return np.dot(matrix, qstat)
else:
print("matrix not unitary, pretending no gate was applied")
return qstat
에게 있습니다. 입력은 큐 비트 (qubit)에 적용되는 numpy 배열로 저장됩니다. 그러나 현재는 수레 만 걸립니다. 분수에서 복소수까지 pi와 같은 상수로 가져갈 수있는 방법은 무엇입니까? 문자열을 가져 와서 "일반"파이썬 코드로 작동시키는 방법이 있습니까? 예를 들어, 사용자가 math.pi/2를 입력하면 계산되지 않는 "math.pi/2"
으로 기록되지만 math.pi/2
으로 작동 할 수 있습니까? 사용자는 다양한 것들을 입력 할 수 있어야합니다. 따라서 지금은 float()
과 같이 변환 할 필요는 없습니다.
도움을 주시면 감사하겠습니다. 감사!
자세한 답변 해 주셔서 감사합니다. +1, 나는 이것을 받아 들일 것이다. – heather
@headther, 답변을 업데이트했습니다. – jjmontes