Ejemplo n.º 1
0
        public QuantumRandomNumber GenerateNumber(QuantumProgram program, int QubitNumber)
        {
            program.Clear();
            program.Options.Shots = 2048;
            Qubit[] qubits = new Qubit[QubitNumber];
            for (int i = 0; i < QubitNumber; i++)
            {
                qubits[i] = new Qubit(program, i);
                qubits[i].H();
            }
            var quantum_number = new QuantumRandomNumber()
            {
                IbmResult = program.Execute()
            };

            if (quantum_number.IbmResult.State == IbmQXSendState.Ok)
            {
                var tmp = program.GetQubitResultStates(quantum_number.IbmResult);
                tmp = (from t in tmp orderby t.Index ascending select t).ToList();
                short[] quantum_values = new short[QubitNumber];
                for (int i = 0; i < QubitNumber; i++)
                {
                    quantum_values[i] = (short)(tmp[i].One % 100);
                }
                quantum_number.SetQuantumNumber(quantum_values);
            }
            return(null);
        }
Ejemplo n.º 2
0
        public QuantumRandomNumber GenerateNumber(HistoryResult program, string HistoryResultId)
        {
            var items = program.GetHistoryResults().Result;

            if (items.Count == 0)
            {
                return(null);
            }
            var result = program.GetQubitResultStatesById(items, HistoryResultId);

            if (result != null)
            {
                var quantum_number = new QuantumRandomNumber();
                result = (from t in result orderby t.Index ascending select t).ToList();
                short[] quantum_values = new short[result.Count];
                for (int i = 0; i < result.Count; i++)
                {
                    quantum_values[i] = (short)(result[i].One % 100);
                }
                quantum_number.SetQuantumNumber(quantum_values);
                return(quantum_number);
            }
            return(null);
        }