/// <summary>
        /// Initializes a new instance of the <see cref="QuantumCircuit"/> class.
        /// </summary>
        /// <param name="register">The register.</param>
        public QuantumCircuit(params QuantumRegister[] registers)
        {
            QCUtil.Random = new Random();
            Program       = new CircuitProgram();
            List <Qubit> qubits = new List <Qubit>();

            foreach (var item in registers)
            {
                qubits.AddRange(item.Qubits);
            }

            Register       = new QuantumRegister(qubits.ToArray());
            ExecuteWithJob = false;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="QuantumCircuit"/> class.
 /// </summary>
 /// <param name="register">The register.</param>
 /// <param name="program">The program.</param>
 public QuantumCircuit(QuantumRegister[] registers, CircuitProgram program)
     : this(registers)
 {
     Program = program;
 }