0

我正在编写一个接受两个参数的函数:alpha 和 beta。然后它计算 N,它是 (alpha^2 + beta^2) 的平方根。然后它返回一个列表 [x, y],其中 x = alpha / N 和 y = beta /N。但是,当我写出这段代码并运行它时,它会错误地计算 1^2,并说它是 3 而不是 1。这会导致错误的答案。我在我的代码中添加了打印语句来调试它,但我找不到问题所在。这是我的代码和输出。

def createQubit(alpha, beta):
"""
Parameters:
Probability amplitutde = alpha -> float
Probability amplitutde = beta  -> float

Return:
A qubit state -> list [x, y], which represents x|0> + y|1>
"""

# YOUR CODE
print(alpha, beta) #test
print(alpha^2, beta^2) #test

sum_of_sq = alpha^2 + beta^2
print(sum_of_sq) #test

N = math.sqrt(sum_of_sq)
if N > 0:
  x = alpha / N
  y = beta / N
  return [x, y]

pass

print(createQubit(1,1))

#OUTPUT: 
#1 1 --> alpha, beta
#3 3 --> alpha^2, beta^2
#0 --> sum_of_sq
#None --> result of function when you set alpha = beta = 1

有人可以帮我理解为什么会这样吗?

4

0 回答 0