Back to The tech awesomeness
Table of contents
Java chapters

The article for today.

While I was unsuccesful at creating the representation for the qubit of qubits, the structure that holds in the qubit the other qubits, not the list of qubits, not the array of qubits, not the matrix of qubits, I represented the qubit measurer logic machine, for example:


public class Test6849302382 {
    static interface QubitMeasurer {
        Integer measureInteger();
        String measureString();
        Object measureObject();
        /*Formula measureFormula();*/
    }
    static class ValuableSelfMeasuringHadamardQubit implements QubitMeasurer {
        private String string1;
        private String string2;
        private ValuableSelfMeasuringHadamardQubit() {}
        
        public ValuableSelfMeasuringHadamardQubit(
                final String string1, final String string2) {
            this.string1 = string1;
            this.string2 = string2;
        }
        int randomBit() {
            Program program = new Program(1);
            Step step = new Step();
            step.addGate(new Hadamard(0));
            program.addStep(step);
            QuantumExecutionEnvironment qee
                    = new SimpleQuantumExecutionEnvironment();
            Result result = qee.runProgram(program);
            Qubit[] qubits = result.getQubits();
            int answer = qubits[0].measure();
            return answer;
        }
        @Override
        public Integer measureInteger() {
            return randomBit();
        };

        @Override
        public String measureString() {
            return (measureInteger().equals(0) ? string1 : string2);
        }

        @Override
        public Object measureObject() {
            throw new UnsupportedOperationException("Not supported yet.");
        }
        
        /*@Override
        public Formula measureFormula() {
            throw new UnsupportedOperationException("Not supported yet.");
        }*/
    }
    public static void main (String[] args) {
        QubitMeasurer hadamardQubit1 =
                new ValuableSelfMeasuringHadamardQubit("the", "the");
        QubitMeasurer hadamardQubit2 =
                new ValuableSelfMeasuringHadamardQubit("cow", "car");
        QubitMeasurer hadamardQubit3 =
                new ValuableSelfMeasuringHadamardQubit("returns", "moves");
        QubitMeasurer hadamardQubit4 =
                new ValuableSelfMeasuringHadamardQubit("back", "home");
        QubitMeasurer hadamardQubit5 =
                new ValuableSelfMeasuringHadamardQubit("slowly", "quickly");
        
        System.out.println(hadamardQubit1.measureString()
                   + " " + hadamardQubit2.measureString()
                   + " " + hadamardQubit3.measureString()
                   + " " + hadamardQubit4.measureString()
                   + " " + hadamardQubit5.measureString());
        /* the car returns back quickly */
        /* the cow moves home slowly */
        /* the cow returns home slowly */
        /* the cow moves back quickly */
    }
}