Чтобы ответить на буквальный вопрос: если 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 или раскраска графа, в форму, которая может использовать преимущества алгоритмов квантовых вычислений. (Раскрытие информации: я поддерживаю этот проект)