static void Main(string[] args) { using (var sim = new QuantumSimulator()) { var message = AllocateAndMeasureSingleQubit.Run(sim).Result; System.Console.WriteLine($"The result of allocating and measuring a qubit was {message}"); message = PutInOneState.Run(sim).Result; System.Console.WriteLine($"The result of putting a qubit in |1> was {message}"); message = sim.RunManyTimes(PutInPlusState.Run, 100); System.Console.WriteLine($"The result of putting a qubit in |+> was {message}"); var qubitCount = 4; message = sim.RunManyTimesN(s => SuperPositionOverAllBasisVectors.Run(s, qubitCount), 10000); System.Console.WriteLine($"The result of putting {qubitCount} qubits in the GHZ state was {message}"); } }
public static string RunManyTimesN(this QuantumSimulator sim, Func <QuantumSimulator, Task <QArray <Result> > > op, int count) { string ResultArrayToString(QArray <Result> result) => result.Select(ResultToString).Aggregate((r, c) => r + c); return(sim.RunManyTimes(op, count, ResultArrayToString)); }
public static string RunManyTimes(this QuantumSimulator sim, Func <QuantumSimulator, Task <Result> > op, int count) { return(sim.RunManyTimes(op, count, ResultToString)); }