Q# E=MC^2 中的多项式方程

Polynomial Equations in Q# E=MC^2

我正在尝试了解如何使用量子计算,并且已经开始了解一些基本门和其他概念,但无法理解如何将其付诸实践解决现实世界问题。

假设我想在 Q# 中编写一个函数 returns E 的值在等式

E= MC^2

有人可以帮我写这个操作吗?

回答字面上的问题:如果 M 和 C 只是浮点数,则可以使用纯经典的 Q# 结构进行计算:

// The function that carries out the computation itself
function Energy (m : Double, c : Double) : Double {
    return m * c ^ 2.0;
}

// The operation that you'll invoke to pass the parameters to the function and to print the results
operation PrintEnergy () : Unit {
    let c = 299792458.0;
    let energy1 = Energy(1.0, c);
    Message($"Calculated energy of 1 gram of mass = {energy1}");
    let energy2 = Energy(2.0, c);
    Message($"Calculated energy of 2 grams of mass = {energy2}");
}

输出为:

Calculated energy of 1 gram of mass = 89875517873681760
Calculated energy of 2 grams of mass = 1.7975103574736352E+17

您会注意到此代码片段未使用任何量子位或门,因此它并不是使用量子计算解决现实世界问题的真正好示例,尽管它是使用量子编程语言实现的。这个问题涉及非常简单的数学计算,可以使用经典计算机非常有效地完成。

量子计算机将使用协处理器计算模型 - 我们将使用它们进行它们非常适合的计算(例如解决化学问题),并使用经典计算机进行其余计算计算。

要学习应用量子计算解决 Q# 问题,您可以查看 Quantum Katas - 教程和编程练习的集合。特别是,他们展示了如何将 SAT 或图形着色等经典问题转化为可以利用量子计算算法的形式。 (披露:我是这个项目的维护者)