gpt4 book ai didi

quantum-computing - 如何将一个 Q# 操作从 C# 或 F# 传递到另一个 Q# 操作

转载 作者:行者123 更新时间:2023-12-04 12:40:49 27 4
gpt4 key购买 nike

我有以下Q#操作

operation VQC (cirq:((Double[],Qubit[])=>Unit is Adj),measurement:Pauli[], args: Double[], nQubits:Int) : Double {
let res=EstimateFrequencyA(cirq(args,_),Measure(measurement,_),nQubits,1000);
return 2.*res-1.;
}

operation Cirq(args:Double[],qs: Qubit[]):Unit is Adj{
Rz(args[0],qs[0] );
CNOT(qs[0],qs[1]);
Ry(args[1],qs[1]);

}

如何从 C# 或 F# 将 Cirq 操作传递到 VQC 操作?

最佳答案

看起来你可以使用 SimulatorBase.Get<>获取您需要传递的操作类型的实例,并改为传递它。

C#驱动代码如下(F#应该类似):

using QuantumSimulator qsim = new QuantumSimulator();
Pauli[] paulis = { Pauli.PauliX, Pauli.PauliZ };
double[] doubles = { 2.0, 0.5 };
IAdjointable cirqInstance = qsim.Get<IAdjointable, Cirq>();
double result = VQC.Run(qsim, cirqInstance, new QArray<Pauli>(paulis), new QArray<Double>(doubles), 2).Result;
Console.WriteLine(result);

关于quantum-computing - 如何将一个 Q# 操作从 C# 或 F# 传递到另一个 Q# 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59328149/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com