首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将一个Q#操作从C#或F#传递给另一个Q#操作

如何将一个Q#操作从C#或F#传递给另一个Q#操作
EN

Stack Overflow用户
提问于 2019-12-14 02:38:57
回答 1查看 63关注 0票数 3

我有以下Q#操作

代码语言:javascript
复制
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操作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-14 09:20:28

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

下面是C#驱动程序代码(F#应该是类似的):

代码语言:javascript
复制
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);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59328149

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档