```python
pip install cirq
```

    Requirement already satisfied: cirq in /usr/local/lib/python3.7/dist-packages (0.13.1)
    Requirement already satisfied: cirq-aqt==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: cirq-rigetti==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: cirq-google==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: cirq-pasqal==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: cirq-core==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: cirq-ionq==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: cirq-web==0.13.1 in /usr/local/lib/python3.7/dist-packages (from cirq) (0.13.1)
    Requirement already satisfied: requests~=2.18 in /usr/local/lib/python3.7/dist-packages (from cirq-aqt==0.13.1->cirq) (2.23.0)
    Requirement already satisfied: numpy~=1.16 in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (1.21.5)
    Requirement already satisfied: scipy in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (1.7.3)
    Requirement already satisfied: tqdm in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (4.62.3)
    Requirement already satisfied: duet~=0.2.0 in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (0.2.3)
    Requirement already satisfied: sympy in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (1.7.1)
    Requirement already satisfied: matplotlib~=3.0 in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (3.2.2)
    Requirement already satisfied: networkx~=2.4 in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (2.6.3)
    Requirement already satisfied: typing-extensions in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (3.10.0.2)
    Requirement already satisfied: sortedcontainers~=2.0 in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (2.4.0)
    Requirement already satisfied: pandas in /usr/local/lib/python3.7/dist-packages (from cirq-core==0.13.1->cirq) (1.3.5)
    Requirement already satisfied: protobuf>=3.13.0 in /usr/local/lib/python3.7/dist-packages (from cirq-google==0.13.1->cirq) (3.17.3)
    Requirement already satisfied: google-api-core[grpc]<2.0.0dev,>=1.14.0 in /usr/local/lib/python3.7/dist-packages (from cirq-google==0.13.1->cirq) (1.26.3)
    Requirement already satisfied: httpx~=0.15.5 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (0.15.5)
    Requirement already satisfied: idna~=2.10 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (2.10)
    Requirement already satisfied: attrs~=20.3.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (20.3.0)
    Requirement already satisfied: certifi~=2021.5.30 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (2021.5.30)
    Requirement already satisfied: iso8601~=0.1.14 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (0.1.16)
    Requirement already satisfied: six~=1.16.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (1.16.0)
    Requirement already satisfied: toml~=0.10.2 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (0.10.2)
    Requirement already satisfied: httpcore~=0.11.1 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (0.11.1)
    Requirement already satisfied: rfc3339~=6.2 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (6.2)
    Requirement already satisfied: h11~=0.9.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (0.9.0)
    Requirement already satisfied: pyquil~=3.0.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (3.0.1)
    Requirement already satisfied: rfc3986~=1.5.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (1.5.0)
    Requirement already satisfied: python-dateutil~=2.8.1 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (2.8.2)
    Requirement already satisfied: retrying~=1.3.3 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (1.3.3)
    Requirement already satisfied: sniffio~=1.2.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (1.2.0)
    Requirement already satisfied: pydantic~=1.8.2 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (1.8.2)
    Requirement already satisfied: pyjwt~=1.7.1 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (1.7.1)
    Requirement already satisfied: qcs-api-client~=0.8.0 in /usr/local/lib/python3.7/dist-packages (from cirq-rigetti==0.13.1->cirq) (0.8.0)
    Requirement already satisfied: googleapis-common-protos<2.0dev,>=1.6.0 in /usr/local/lib/python3.7/dist-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (1.54.0)
    Requirement already satisfied: setuptools>=40.3.0 in /usr/local/lib/python3.7/dist-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (57.4.0)
    Requirement already satisfied: google-auth<2.0dev,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (1.35.0)
    Requirement already satisfied: packaging>=14.3 in /usr/local/lib/python3.7/dist-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (21.3)
    Requirement already satisfied: pytz in /usr/local/lib/python3.7/dist-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (2018.9)
    Requirement already satisfied: grpcio<2.0dev,>=1.29.0 in /usr/local/lib/python3.7/dist-packages (from google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (1.43.0)
    Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.7/dist-packages (from google-auth<2.0dev,>=1.21.1->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (4.8)
    Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.7/dist-packages (from google-auth<2.0dev,>=1.21.1->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (0.2.8)
    Requirement already satisfied: cachetools<5.0,>=2.0.0 in /usr/local/lib/python3.7/dist-packages (from google-auth<2.0dev,>=1.21.1->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (4.2.4)
    Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.7/dist-packages (from matplotlib~=3.0->cirq-core==0.13.1->cirq) (0.11.0)
    Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib~=3.0->cirq-core==0.13.1->cirq) (1.3.2)
    Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.7/dist-packages (from matplotlib~=3.0->cirq-core==0.13.1->cirq) (3.0.7)
    Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in /usr/local/lib/python3.7/dist-packages (from pyasn1-modules>=0.2.1->google-auth<2.0dev,>=1.21.1->google-api-core[grpc]<2.0.0dev,>=1.14.0->cirq-google==0.13.1->cirq) (0.4.8)
    Requirement already satisfied: rpcq<4.0.0,>=3.6.0 in /usr/local/lib/python3.7/dist-packages (from pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (3.9.2)
    Requirement already satisfied: importlib-metadata<4.0.0,>=3.7.3 in /usr/local/lib/python3.7/dist-packages (from pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (3.10.1)
    Requirement already satisfied: lark<0.12.0,>=0.11.1 in /usr/local/lib/python3.7/dist-packages (from pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (0.11.3)
    Requirement already satisfied: retry<0.10.0,>=0.9.2 in /usr/local/lib/python3.7/dist-packages (from pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (0.9.2)
    Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.7/dist-packages (from importlib-metadata<4.0.0,>=3.7.3->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (3.7.0)
    Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests~=2.18->cirq-aqt==0.13.1->cirq) (1.24.3)
    Requirement already satisfied: chardet<4,>=3.0.2 in /usr/local/lib/python3.7/dist-packages (from requests~=2.18->cirq-aqt==0.13.1->cirq) (3.0.4)
    Requirement already satisfied: py<2.0.0,>=1.4.26 in /usr/local/lib/python3.7/dist-packages (from retry<0.10.0,>=0.9.2->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (1.11.0)
    Requirement already satisfied: decorator>=3.4.2 in /usr/local/lib/python3.7/dist-packages (from retry<0.10.0,>=0.9.2->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (4.4.2)
    Requirement already satisfied: pyzmq>=17 in /usr/local/lib/python3.7/dist-packages (from rpcq<4.0.0,>=3.6.0->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (22.3.0)
    Requirement already satisfied: ruamel.yaml in /usr/local/lib/python3.7/dist-packages (from rpcq<4.0.0,>=3.6.0->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (0.17.21)
    Requirement already satisfied: python-rapidjson in /usr/local/lib/python3.7/dist-packages (from rpcq<4.0.0,>=3.6.0->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (1.5)
    Requirement already satisfied: msgpack<1.0,>=0.6 in /usr/local/lib/python3.7/dist-packages (from rpcq<4.0.0,>=3.6.0->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (0.6.2)
    Requirement already satisfied: ruamel.yaml.clib>=0.2.6 in /usr/local/lib/python3.7/dist-packages (from ruamel.yaml->rpcq<4.0.0,>=3.6.0->pyquil~=3.0.0->cirq-rigetti==0.13.1->cirq) (0.2.6)
    Requirement already satisfied: mpmath>=0.19 in /usr/local/lib/python3.7/dist-packages (from sympy->cirq-core==0.13.1->cirq) (1.2.1)

```python
#import required libraries
from collections import Counter
import numpy as np
import scipy as sp
import cirq
import time
```

```python
def make_simon_circuit(input_qubits, output_qubits, secret_string):
    """Solves for the secret period s of a 2-to-1 function such that
    f(x) = f(y) iff x ⨁ y = s
    """
    # Initialise quantum circuit
    c = cirq.Circuit()

    # Initialize input qubits qubits.
    c.append(
        [
            cirq.H.on_each(*input_qubits),
        ]
    )

    # Query oracle.
    def oracle(input_qubits, output_qubits, secret_string,c):
      for control_qubit, target_qubit in zip(input_qubits, output_qubits):
        c.append(cirq.CNOT(control_qubit, target_qubit))

      # Create mapping:
      if sum(secret_string):  # check if the secret string is non-zero
        significant = list(secret_string).index(1) # Find significant bit of secret string (first non-zero bit)

      # Add secret string to input according to the significant bit:
      for j in range(len(secret_string)):
        if secret_string[j] > 0:
          c.append(cirq.CNOT(input_qubits[significant], output_qubits[j]))

      # Apply a random permutation to create periodicity:
      pos = [
          0,
          len(secret_string) - 1,
          len(secret_string) - 2,
      ]

      # Swap some qubits to define oracle. We choose first, second last and last ones:
      c.append(cirq.SWAP(output_qubits[pos[0]], output_qubits[pos[1]]))

      #if(len(pos)>2):
      #  pass

      c.append(cirq.SWAP(output_qubits[pos[0]], output_qubits[pos[2]]))

    oracle(input_qubits, output_qubits, secret_string,c)
    # Measure in X basis.
    c.append([cirq.H.on_each(*input_qubits), cirq.measure(*input_qubits, key='result')])

    return c

```

```python
def post_processing(data, results):
    #Solves a system of equations with modulo 2 numbers
    sing_values = sp.linalg.svdvals(results)
    tolerance = 1e-5
    if sum(sing_values < tolerance) == 0:  # check if measurements are linearly dependent
        flag = True
        null_space = sp.linalg.null_space(results).T[0]
        solution = np.around(null_space, 3)  # ignore very small values
        minval = abs(min(solution[np.nonzero(solution)], key=abs))
        solution = (solution / minval % 2).astype(int)  # renormalize vector mod 2
        data.append(str(solution))
        return flag
```

```python
def main(qubit_count):

    data = []  # To store results

    # define a secret string:
    secret_string = np.random.randint(2, size=qubit_count)

    print(f'Secret string = {secret_string}')

    n_samples = 100
    for _ in range(n_samples):
        flag = False  # check if we have a linearly independence between our measured data
        while not flag:
            # Choose qubits to use.
            input_qubits = [cirq.GridQubit(i, 0) for i in range(qubit_count)]  # input x
            output_qubits = [
                cirq.GridQubit(i + qubit_count, 0) for i in range(qubit_count)
            ]  # output f(x)

            # Pick coefficients for the oracle and create a circuit to query it &
            # Append oracle into special quantum circuit querying it exactly once.
            circuit = make_simon_circuit(input_qubits, output_qubits, secret_string)

            # Sample from the circuit a n-1 times (n = qubit_count).
            simulator = cirq.Simulator()
            results = [
                simulator.run(circuit).measurements['result'][0] for _ in range(qubit_count - 1)
            ]

            # Classical Post-Processing:
            flag = post_processing(data, results)

    freqs = Counter(data)
    print('Circuit:')
    print(circuit)
    print(f'Most common answer was : {freqs.most_common(1)[0]}')
```

```python
# Running the algorithm by altering the circuit for varied values of n, where n represents number of qubits &
# Capturing time taken for the algorithm to run for each value of n
t=[]
for i in range(3,21):
  st=time.time()
  main(i)
  end=time.time()
  t.append(end-st)
```

    Secret string = [0 1 1]
    Circuit:
                   ┌───┐   ┌──┐
    (0, 0): ───H────@───────H─────────────M('result')───
                    │                     │
    (1, 0): ───H────┼@──────@─────@───H───M─────────────
                    ││      │     │       │
    (2, 0): ───H────┼┼@─────┼H────┼───────M─────────────
                    │││     │     │
    (3, 0): ────────X┼┼─────┼─────┼───×───×─────────────
                     ││     │     │   │   │
    (4, 0): ─────────X┼─────X─────┼───┼───×─────────────
                      │           │   │
    (5, 0): ──────────X───────────X───×─────────────────
                   └───┘   └──┘
    Most common answer was : ('[0 1 1]', 100)
    Secret string = [0 1 0 1]
    Circuit:
                   ┌────┐   ┌──┐
    (0, 0): ───H────@────────H─────────────M('result')───
                    │                      │
    (1, 0): ───H────┼@───────@─────@───H───M─────────────
                    ││       │     │       │
    (2, 0): ───H────┼┼@──────┼H────┼───────M─────────────
                    │││      │     │       │
    (3, 0): ───H────┼┼┼@─────┼H────┼───────M─────────────
                    ││││     │     │
    (4, 0): ────────X┼┼┼─────┼─────┼───×───×─────────────
                     │││     │     │   │   │
    (5, 0): ─────────X┼┼─────X─────┼───┼───┼─────────────
                      ││           │   │   │
    (6, 0): ──────────X┼───────────┼───┼───×─────────────
                       │           │   │
    (7, 0): ───────────X───────────X───×─────────────────
                   └────┘   └──┘
    Most common answer was : ('[0 1 0 1]', 100)
    Secret string = [0 1 1 0 0]
    Circuit:
                   ┌─────┐   ┌──┐   ┌──┐
    (0, 0): ───H────@─────────H────────────────M('result')───
                    │                          │
    (1, 0): ───H────┼@────────@──────@─────H───M─────────────
                    ││        │      │         │
    (2, 0): ───H────┼┼@───────┼H─────┼─────────M─────────────
                    │││       │      │         │
    (3, 0): ───H────┼┼┼@──────┼H─────┼─────────M─────────────
                    ││││      │      │         │
    (4, 0): ───H────┼┼┼┼@─────┼H─────┼─────────M─────────────
                    │││││     │      │
    (5, 0): ────────X┼┼┼┼─────┼×─────┼×──────────────────────
                     ││││     ││     ││
    (6, 0): ─────────X┼┼┼─────X┼─────┼┼──────────────────────
                      │││      │     ││
    (7, 0): ──────────X┼┼──────┼─────X┼──────────────────────
                       ││      │      │
    (8, 0): ───────────X┼──────┼──────×──────────────────────
                        │      │
    (9, 0): ────────────X──────×─────────────────────────────
                   └─────┘   └──┘   └──┘
    Most common answer was : ('[0 1 1 0 0]', 100)
    Secret string = [1 1 0 1 0 1]
    Circuit:
                    ┌──────┐   ┌──┐
    (0, 0): ────H────@──────────@─────@───@───@───H───M('result')───
                     │          │     │   │   │       │
    (1, 0): ────H────┼@─────────┼H────┼───┼───┼───────M─────────────
                     ││         │     │   │   │       │
    (2, 0): ────H────┼┼@────────┼H────┼───┼───┼───────M─────────────
                     │││        │     │   │   │       │
    (3, 0): ────H────┼┼┼@───────┼H────┼───┼───┼───────M─────────────
                     ││││       │     │   │   │       │
    (4, 0): ────H────┼┼┼┼@──────┼H────┼───┼───┼───────M─────────────
                     │││││      │     │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@─────┼H────┼───┼───┼───────M─────────────
                     ││││││     │     │   │   │
    (6, 0): ─────────X┼┼┼┼┼─────X─────┼───┼───┼───×───×─────────────
                      │││││           │   │   │   │   │
    (7, 0): ──────────X┼┼┼┼───────────X───┼───┼───┼───┼─────────────
                       ││││               │   │   │   │
    (8, 0): ───────────X┼┼┼───────────────┼───┼───┼───┼─────────────
                        │││               │   │   │   │
    (9, 0): ────────────X┼┼───────────────X───┼───┼───┼─────────────
                         ││                   │   │   │
    (10, 0): ────────────X┼───────────────────┼───┼───×─────────────
                          │                   │   │
    (11, 0): ─────────────X───────────────────X───×─────────────────
                    └──────┘   └──┘
    Most common answer was : ('[1 1 0 1 0 1]', 65)
    Secret string = [0 1 1 0 1 1 0]
    Circuit:
                    ┌───────┐   ┌──┐
    (0, 0): ────H────@───────────H─────────────────────M('result')───
                     │                                 │
    (1, 0): ────H────┼@──────────@─────@───@───@───H───M─────────────
                     ││          │     │   │   │       │
    (2, 0): ────H────┼┼@─────────┼H────┼───┼───┼───────M─────────────
                     │││         │     │   │   │       │
    (3, 0): ────H────┼┼┼@────────┼H────┼───┼───┼───────M─────────────
                     ││││        │     │   │   │       │
    (4, 0): ────H────┼┼┼┼@───────┼H────┼───┼───┼───────M─────────────
                     │││││       │     │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@──────┼H────┼───┼───┼───────M─────────────
                     ││││││      │     │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@─────┼H────┼───┼───┼───────M─────────────
                     │││││││     │     │   │   │
    (7, 0): ─────────X┼┼┼┼┼┼─────┼×────┼───┼───┼───×─────────────────
                      ││││││     ││    │   │   │   │
    (8, 0): ──────────X┼┼┼┼┼─────X┼────┼───┼───┼───┼─────────────────
                       │││││      │    │   │   │   │
    (9, 0): ───────────X┼┼┼┼──────┼────X───┼───┼───┼─────────────────
                        ││││      │        │   │   │
    (10, 0): ───────────X┼┼┼──────┼────────┼───┼───┼─────────────────
                         │││      │        │   │   │
    (11, 0): ────────────X┼┼──────┼────────X───┼───┼─────────────────
                          ││      │            │   │
    (12, 0): ─────────────X┼──────┼────────────X───×─────────────────
                           │      │
    (13, 0): ──────────────X──────×──────────────────────────────────
                    └───────┘   └──┘
    Most common answer was : ('[0 1 1 0 1 1 0]', 44)
    Secret string = [0 1 1 1 0 1 1 1]
    Circuit:
                    ┌────────┐   ┌──┐
    (0, 0): ────H────@────────────H─────────────────────────────M('result')───
                     │                                          │
    (1, 0): ────H────┼@───────────@─────@───@───@───@───@───H───M─────────────
                     ││           │     │   │   │   │   │       │
    (2, 0): ────H────┼┼@──────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││          │     │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@─────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││         │     │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││        │     │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││       │     │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││││      │     │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││││     │     │   │   │   │   │
    (8, 0): ─────────X┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───×───×─────────────
                      │││││││     │     │   │   │   │   │   │   │
    (9, 0): ──────────X┼┼┼┼┼┼─────X─────┼───┼───┼───┼───┼───┼───┼─────────────
                       ││││││           │   │   │   │   │   │   │
    (10, 0): ──────────X┼┼┼┼┼───────────X───┼───┼───┼───┼───┼───┼─────────────
                        │││││               │   │   │   │   │   │
    (11, 0): ───────────X┼┼┼┼───────────────X───┼───┼───┼───┼───┼─────────────
                         ││││                   │   │   │   │   │
    (12, 0): ────────────X┼┼┼───────────────────┼───┼───┼───┼───┼─────────────
                          │││                   │   │   │   │   │
    (13, 0): ─────────────X┼┼───────────────────X───┼───┼───┼───┼─────────────
                           ││                       │   │   │   │
    (14, 0): ──────────────X┼───────────────────────X───┼───┼───×─────────────
                            │                           │   │
    (15, 0): ───────────────X───────────────────────────X───×─────────────────
                    └────────┘   └──┘
    Most common answer was : ('[0 1 1 1 0 1 1 1]', 40)
    Secret string = [0 1 1 1 1 0 0 1 1]
    Circuit:
                    ┌─────────┐   ┌──┐
    (0, 0): ────H────@─────────────H─────────────────────────────M('result')───
                     │                                           │
    (1, 0): ────H────┼@────────────@─────@───@───@───@───@───H───M─────────────
                     ││            │     │   │   │   │   │       │
    (2, 0): ────H────┼┼@───────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││           │     │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@──────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││          │     │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@─────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││         │     │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││        │     │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││││       │     │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││││      │     │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││││││     │     │   │   │   │   │
    (9, 0): ─────────X┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───×───×─────────────
                      ││││││││     │     │   │   │   │   │   │   │
    (10, 0): ─────────X┼┼┼┼┼┼┼─────X─────┼───┼───┼───┼───┼───┼───┼─────────────
                       │││││││           │   │   │   │   │   │   │
    (11, 0): ──────────X┼┼┼┼┼┼───────────X───┼───┼───┼───┼───┼───┼─────────────
                        ││││││               │   │   │   │   │   │
    (12, 0): ───────────X┼┼┼┼┼───────────────X───┼───┼───┼───┼───┼─────────────
                         │││││                   │   │   │   │   │
    (13, 0): ────────────X┼┼┼┼───────────────────X───┼───┼───┼───┼─────────────
                          ││││                       │   │   │   │
    (14, 0): ─────────────X┼┼┼───────────────────────┼───┼───┼───┼─────────────
                           │││                       │   │   │   │
    (15, 0): ──────────────X┼┼───────────────────────┼───┼───┼───┼─────────────
                            ││                       │   │   │   │
    (16, 0): ───────────────X┼───────────────────────X───┼───┼───×─────────────
                             │                           │   │
    (17, 0): ────────────────X───────────────────────────X───×─────────────────
                    └─────────┘   └──┘
    Most common answer was : ('[0 1 1 1 1 0 0 1 1]', 27)
    Secret string = [1 0 1 0 0 0 1 0 1 1]
    Circuit:
                    ┌──────────┐   ┌──┐
    (0, 0): ────H────@──────────────@─────@───@───@───@───H───M('result')───
                     │              │     │   │   │   │       │
    (1, 0): ────H────┼@─────────────┼H────┼───┼───┼───┼───────M─────────────
                     ││             │     │   │   │   │       │
    (2, 0): ────H────┼┼@────────────┼H────┼───┼───┼───┼───────M─────────────
                     │││            │     │   │   │   │       │
    (3, 0): ────H────┼┼┼@───────────┼H────┼───┼───┼───┼───────M─────────────
                     ││││           │     │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@──────────┼H────┼───┼───┼───┼───────M─────────────
                     │││││          │     │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@─────────┼H────┼───┼───┼───┼───────M─────────────
                     ││││││         │     │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@────────┼H────┼───┼───┼───┼───────M─────────────
                     │││││││        │     │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───────M─────────────
                     ││││││││       │     │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───────M─────────────
                     │││││││││      │     │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───────M─────────────
                     ││││││││││     │     │   │   │   │
    (10, 0): ────────X┼┼┼┼┼┼┼┼┼─────X─────┼───┼───┼───┼───×───×─────────────
                      │││││││││           │   │   │   │   │   │
    (11, 0): ─────────X┼┼┼┼┼┼┼┼───────────┼───┼───┼───┼───┼───┼─────────────
                       ││││││││           │   │   │   │   │   │
    (12, 0): ──────────X┼┼┼┼┼┼┼───────────X───┼───┼───┼───┼───┼─────────────
                        │││││││               │   │   │   │   │
    (13, 0): ───────────X┼┼┼┼┼┼───────────────┼───┼───┼───┼───┼─────────────
                         ││││││               │   │   │   │   │
    (14, 0): ────────────X┼┼┼┼┼───────────────┼───┼───┼───┼───┼─────────────
                          │││││               │   │   │   │   │
    (15, 0): ─────────────X┼┼┼┼───────────────┼───┼───┼───┼───┼─────────────
                           ││││               │   │   │   │   │
    (16, 0): ──────────────X┼┼┼───────────────X───┼───┼───┼───┼─────────────
                            │││                   │   │   │   │
    (17, 0): ───────────────X┼┼───────────────────┼───┼───┼───┼─────────────
                             ││                   │   │   │   │
    (18, 0): ────────────────X┼───────────────────X───┼───┼───×─────────────
                              │                       │   │
    (19, 0): ─────────────────X───────────────────────X───×─────────────────
                    └──────────┘   └──┘
    Most common answer was : ('[1 0 1 0 0 0 1 0 1 1]', 20)
    Secret string = [1 1 0 0 1 1 1 0 0 0 1]
    Circuit:
                    ┌───────────┐   ┌──┐
    (0, 0): ────H────@───────────────@─────@───@───@───@───@───H───M('result')───
                     │               │     │   │   │   │   │       │
    (1, 0): ────H────┼@──────────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││              │     │   │   │   │   │       │
    (2, 0): ────H────┼┼@─────────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││             │     │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@────────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││            │     │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@───────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││           │     │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@──────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││          │     │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@─────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││││         │     │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││││        │     │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││││││       │     │   │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││      │     │   │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││     │     │   │   │   │   │
    (11, 0): ────────X┼┼┼┼┼┼┼┼┼┼─────X─────┼───┼───┼───┼───┼───×───×─────────────
                      ││││││││││           │   │   │   │   │   │   │
    (12, 0): ─────────X┼┼┼┼┼┼┼┼┼───────────X───┼───┼───┼───┼───┼───┼─────────────
                       │││││││││               │   │   │   │   │   │
    (13, 0): ──────────X┼┼┼┼┼┼┼┼───────────────┼───┼───┼───┼───┼───┼─────────────
                        ││││││││               │   │   │   │   │   │
    (14, 0): ───────────X┼┼┼┼┼┼┼───────────────┼───┼───┼───┼───┼───┼─────────────
                         │││││││               │   │   │   │   │   │
    (15, 0): ────────────X┼┼┼┼┼┼───────────────X───┼───┼───┼───┼───┼─────────────
                          ││││││                   │   │   │   │   │
    (16, 0): ─────────────X┼┼┼┼┼───────────────────X───┼───┼───┼───┼─────────────
                           │││││                       │   │   │   │
    (17, 0): ──────────────X┼┼┼┼───────────────────────X───┼───┼───┼─────────────
                            ││││                           │   │   │
    (18, 0): ───────────────X┼┼┼───────────────────────────┼───┼───┼─────────────
                             │││                           │   │   │
    (19, 0): ────────────────X┼┼───────────────────────────┼───┼───┼─────────────
                              ││                           │   │   │
    (20, 0): ─────────────────X┼───────────────────────────┼───┼───×─────────────
                               │                           │   │
    (21, 0): ──────────────────X───────────────────────────X───×─────────────────
                    └───────────┘   └──┘
    Most common answer was : ('[1 1 0 0 1 1 1 0 0 0 1]', 18)
    Secret string = [1 1 0 1 0 0 1 0 0 1 1 1]
    Circuit:
                    ┌────────────┐   ┌──┐
    (0, 0): ────H────@────────────────@─────@───@───@───@───@───@───H───M('result')───
                     │                │     │   │   │   │   │   │       │
    (1, 0): ────H────┼@───────────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││               │     │   │   │   │   │   │       │
    (2, 0): ────H────┼┼@──────────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││              │     │   │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@─────────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││             │     │   │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@────────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││            │     │   │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@───────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││           │     │   │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@──────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││          │     │   │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@─────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││         │     │   │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││        │     │   │   │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││       │     │   │   │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││      │     │   │   │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││     │     │   │   │   │   │   │
    (12, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼─────X─────┼───┼───┼───┼───┼───┼───×───×─────────────
                      │││││││││││           │   │   │   │   │   │   │   │
    (13, 0): ─────────X┼┼┼┼┼┼┼┼┼┼───────────X───┼───┼───┼───┼───┼───┼───┼─────────────
                       ││││││││││               │   │   │   │   │   │   │
    (14, 0): ──────────X┼┼┼┼┼┼┼┼┼───────────────┼───┼───┼───┼───┼───┼───┼─────────────
                        │││││││││               │   │   │   │   │   │   │
    (15, 0): ───────────X┼┼┼┼┼┼┼┼───────────────X───┼───┼───┼───┼───┼───┼─────────────
                         ││││││││                   │   │   │   │   │   │
    (16, 0): ────────────X┼┼┼┼┼┼┼───────────────────┼───┼───┼───┼───┼───┼─────────────
                          │││││││                   │   │   │   │   │   │
    (17, 0): ─────────────X┼┼┼┼┼┼───────────────────┼───┼───┼───┼───┼───┼─────────────
                           ││││││                   │   │   │   │   │   │
    (18, 0): ──────────────X┼┼┼┼┼───────────────────X───┼───┼───┼───┼───┼─────────────
                            │││││                       │   │   │   │   │
    (19, 0): ───────────────X┼┼┼┼───────────────────────┼───┼───┼───┼───┼─────────────
                             ││││                       │   │   │   │   │
    (20, 0): ────────────────X┼┼┼───────────────────────┼───┼───┼───┼───┼─────────────
                              │││                       │   │   │   │   │
    (21, 0): ─────────────────X┼┼───────────────────────X───┼───┼───┼───┼─────────────
                               ││                           │   │   │   │
    (22, 0): ──────────────────X┼───────────────────────────X───┼───┼───×─────────────
                                │                               │   │
    (23, 0): ───────────────────X───────────────────────────────X───×─────────────────
                    └────────────┘   └──┘
    Most common answer was : ('[1 1 0 1 0 0 1 0 0 1 1 1]', 20)
    Secret string = [1 1 0 1 1 1 1 1 0 1 1 0 0]
    Circuit:
                    ┌─────────────┐   ┌──┐   ┌──┐   ┌──┐
    (0, 0): ────H────@─────────────────@──────@──────@─────@───@───@───@───@───@───H───M('result')───
                     │                 │      │      │     │   │   │   │   │   │       │
    (1, 0): ────H────┼@────────────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││                │      │      │     │   │   │   │   │   │       │
    (2, 0): ────H────┼┼@───────────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││               │      │      │     │   │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@──────────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││              │      │      │     │   │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@─────────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││             │      │      │     │   │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@────────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││            │      │      │     │   │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@───────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││           │      │      │     │   │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@──────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││          │      │      │     │   │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@─────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││         │      │      │     │   │   │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@────────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││        │      │      │     │   │   │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@───────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││       │      │      │     │   │   │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@──────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││      │      │      │     │   │   │   │   │   │       │
    (12, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼@─────┼H─────┼──────┼─────┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││     │      │      │     │   │   │   │   │   │
    (13, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼┼─────X──────┼×─────┼×────┼───┼───┼───┼───┼───┼─────────────────────
                      ││││││││││││            ││     ││    │   │   │   │   │   │
    (14, 0): ─────────X┼┼┼┼┼┼┼┼┼┼┼────────────X┼─────┼┼────┼───┼───┼───┼───┼───┼─────────────────────
                       │││││││││││             │     ││    │   │   │   │   │   │
    (15, 0): ──────────X┼┼┼┼┼┼┼┼┼┼─────────────┼─────┼┼────┼───┼───┼───┼───┼───┼─────────────────────
                        ││││││││││             │     ││    │   │   │   │   │   │
    (16, 0): ───────────X┼┼┼┼┼┼┼┼┼─────────────┼─────X┼────┼───┼───┼───┼───┼───┼─────────────────────
                         │││││││││             │      │    │   │   │   │   │   │
    (17, 0): ────────────X┼┼┼┼┼┼┼┼─────────────┼──────┼────X───┼───┼───┼───┼───┼─────────────────────
                          ││││││││             │      │        │   │   │   │   │
    (18, 0): ─────────────X┼┼┼┼┼┼┼─────────────┼──────┼────────X───┼───┼───┼───┼─────────────────────
                           │││││││             │      │            │   │   │   │
    (19, 0): ──────────────X┼┼┼┼┼┼─────────────┼──────┼────────────X───┼───┼───┼─────────────────────
                            ││││││             │      │                │   │   │
    (20, 0): ───────────────X┼┼┼┼┼─────────────┼──────┼────────────────X───┼───┼─────────────────────
                             │││││             │      │                    │   │
    (21, 0): ────────────────X┼┼┼┼─────────────┼──────┼────────────────────┼───┼─────────────────────
                              ││││             │      │                    │   │
    (22, 0): ─────────────────X┼┼┼─────────────┼──────┼────────────────────X───┼─────────────────────
                               │││             │      │                        │
    (23, 0): ──────────────────X┼┼─────────────┼──────┼────────────────────────X─────────────────────
                                ││             │      │
    (24, 0): ───────────────────X┼─────────────┼──────×──────────────────────────────────────────────
                                 │             │
    (25, 0): ────────────────────X─────────────×─────────────────────────────────────────────────────
                    └─────────────┘   └──┘   └──┘   └──┘
    Most common answer was : ('[1 1 0 1 1 1 1 1 0 1 1 0 0]', 4)
    Secret string = [1 0 1 0 1 0 1 1 1 0 1 0 0 0]
    Circuit:
                    ┌──────────────┐   ┌──┐   ┌──┐   ┌──┐
    (0, 0): ────H────@──────────────────@──────@──────@─────@───@───@───@───H───M('result')───
                     │                  │      │      │     │   │   │   │       │
    (1, 0): ────H────┼@─────────────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││                 │      │      │     │   │   │   │       │
    (2, 0): ────H────┼┼@────────────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     │││                │      │      │     │   │   │   │       │
    (3, 0): ────H────┼┼┼@───────────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││││               │      │      │     │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@──────────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     │││││              │      │      │     │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@─────────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││             │      │      │     │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@────────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││            │      │      │     │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@───────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││           │      │      │     │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@──────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││          │      │      │     │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@─────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││         │      │      │     │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@────────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││││        │      │      │     │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@───────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││││       │      │      │     │   │   │   │       │
    (12, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼@──────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││││││      │      │      │     │   │   │   │       │
    (13, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼@─────┼H─────┼──────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││││││     │      │      │     │   │   │   │
    (14, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼┼┼─────X──────┼×─────┼×────┼───┼───┼───┼─────────────────────
                      │││││││││││││            ││     ││    │   │   │   │
    (15, 0): ─────────X┼┼┼┼┼┼┼┼┼┼┼┼────────────┼┼─────┼┼────┼───┼───┼───┼─────────────────────
                       ││││││││││││            ││     ││    │   │   │   │
    (16, 0): ──────────X┼┼┼┼┼┼┼┼┼┼┼────────────X┼─────┼┼────┼───┼───┼───┼─────────────────────
                        │││││││││││             │     ││    │   │   │   │
    (17, 0): ───────────X┼┼┼┼┼┼┼┼┼┼─────────────┼─────┼┼────┼───┼───┼───┼─────────────────────
                         ││││││││││             │     ││    │   │   │   │
    (18, 0): ────────────X┼┼┼┼┼┼┼┼┼─────────────┼─────X┼────┼───┼───┼───┼─────────────────────
                          │││││││││             │      │    │   │   │   │
    (19, 0): ─────────────X┼┼┼┼┼┼┼┼─────────────┼──────┼────┼───┼───┼───┼─────────────────────
                           ││││││││             │      │    │   │   │   │
    (20, 0): ──────────────X┼┼┼┼┼┼┼─────────────┼──────┼────X───┼───┼───┼─────────────────────
                            │││││││             │      │        │   │   │
    (21, 0): ───────────────X┼┼┼┼┼┼─────────────┼──────┼────────X───┼───┼─────────────────────
                             ││││││             │      │            │   │
    (22, 0): ────────────────X┼┼┼┼┼─────────────┼──────┼────────────X───┼─────────────────────
                              │││││             │      │                │
    (23, 0): ─────────────────X┼┼┼┼─────────────┼──────┼────────────────┼─────────────────────
                               ││││             │      │                │
    (24, 0): ──────────────────X┼┼┼─────────────┼──────┼────────────────X─────────────────────
                                │││             │      │
    (25, 0): ───────────────────X┼┼─────────────┼──────┼──────────────────────────────────────
                                 ││             │      │
    (26, 0): ────────────────────X┼─────────────┼──────×──────────────────────────────────────
                                  │             │
    (27, 0): ─────────────────────X─────────────×─────────────────────────────────────────────
                    └──────────────┘   └──┘   └──┘   └──┘
    Most common answer was : ('[1 0 1 0 1 0 1 1 1 0 1 0 0 0]', 3)
    Secret string = [0 1 1 0 1 0 1 0 1 0 0 1 1 0 1]
    Circuit:
                    ┌───────────────┐   ┌──┐
    (0, 0): ────H────@───────────────────H─────────────────────────────────────M('result')───
                     │                                                         │
    (1, 0): ────H────┼@──────────────────@─────@───@───@───@───@───@───@───H───M─────────────
                     ││                  │     │   │   │   │   │   │   │       │
    (2, 0): ────H────┼┼@─────────────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││                 │     │   │   │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@────────────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││                │     │   │   │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@───────────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││               │     │   │   │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@──────────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││              │     │   │   │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@─────────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││             │     │   │   │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@────────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││            │     │   │   │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@───────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││           │     │   │   │   │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@──────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││          │     │   │   │   │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@─────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││         │     │   │   │   │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││        │     │   │   │   │   │   │   │       │
    (12, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││       │     │   │   │   │   │   │   │       │
    (13, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││││      │     │   │   │   │   │   │   │       │
    (14, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││││     │     │   │   │   │   │   │   │
    (15, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───┼───┼───×───×─────────────
                      ││││││││││││││     │     │   │   │   │   │   │   │   │   │
    (16, 0): ─────────X┼┼┼┼┼┼┼┼┼┼┼┼┼─────X─────┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                       │││││││││││││           │   │   │   │   │   │   │   │   │
    (17, 0): ──────────X┼┼┼┼┼┼┼┼┼┼┼┼───────────X───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                        ││││││││││││               │   │   │   │   │   │   │   │
    (18, 0): ───────────X┼┼┼┼┼┼┼┼┼┼┼───────────────┼───┼───┼───┼───┼───┼───┼───┼─────────────
                         │││││││││││               │   │   │   │   │   │   │   │
    (19, 0): ────────────X┼┼┼┼┼┼┼┼┼┼───────────────X───┼───┼───┼───┼───┼───┼───┼─────────────
                          ││││││││││                   │   │   │   │   │   │   │
    (20, 0): ─────────────X┼┼┼┼┼┼┼┼┼───────────────────┼───┼───┼───┼───┼───┼───┼─────────────
                           │││││││││                   │   │   │   │   │   │   │
    (21, 0): ──────────────X┼┼┼┼┼┼┼┼───────────────────X───┼───┼───┼───┼───┼───┼─────────────
                            ││││││││                       │   │   │   │   │   │
    (22, 0): ───────────────X┼┼┼┼┼┼┼───────────────────────┼───┼───┼───┼───┼───┼─────────────
                             │││││││                       │   │   │   │   │   │
    (23, 0): ────────────────X┼┼┼┼┼┼───────────────────────X───┼───┼───┼───┼───┼─────────────
                              ││││││                           │   │   │   │   │
    (24, 0): ─────────────────X┼┼┼┼┼───────────────────────────┼───┼───┼───┼───┼─────────────
                               │││││                           │   │   │   │   │
    (25, 0): ──────────────────X┼┼┼┼───────────────────────────┼───┼───┼───┼───┼─────────────
                                ││││                           │   │   │   │   │
    (26, 0): ───────────────────X┼┼┼───────────────────────────X───┼───┼───┼───┼─────────────
                                 │││                               │   │   │   │
    (27, 0): ────────────────────X┼┼───────────────────────────────X───┼───┼───┼─────────────
                                  ││                                   │   │   │
    (28, 0): ─────────────────────X┼───────────────────────────────────┼───┼───×─────────────
                                   │                                   │   │
    (29, 0): ──────────────────────X───────────────────────────────────X───×─────────────────
                    └───────────────┘   └──┘
    Most common answer was : ('[0 1 1 0 1 0 1 0 1 0 0 1 1 0 1]', 6)
    Secret string = [0 1 0 0 1 0 1 1 0 0 1 1 0 0 0 0]
    Circuit:
                    ┌────────────────┐   ┌──┐   ┌──┐
    (0, 0): ────H────@────────────────────H────────────────────────────────M('result')───
                     │                                                     │
    (1, 0): ────H────┼@───────────────────@──────@─────@───@───@───@───H───M─────────────
                     ││                   │      │     │   │   │   │       │
    (2, 0): ────H────┼┼@──────────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││                  │      │     │   │   │   │       │
    (3, 0): ────H────┼┼┼@─────────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││                 │      │     │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@────────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││││                │      │     │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@───────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││               │      │     │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@──────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││              │      │     │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@─────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││             │      │     │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@────────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││            │      │     │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@───────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││           │      │     │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@──────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││││          │      │     │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@─────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││││         │      │     │   │   │   │       │
    (12, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼@────────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││││││        │      │     │   │   │   │       │
    (13, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼@───────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││││││       │      │     │   │   │   │       │
    (14, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼@──────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     │││││││││││││││      │      │     │   │   │   │       │
    (15, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼@─────┼H─────┼─────┼───┼───┼───┼───────M─────────────
                     ││││││││││││││││     │      │     │   │   │   │
    (16, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼×─────┼×────┼───┼───┼───┼─────────────────────
                      │││││││││││││││     ││     ││    │   │   │   │
    (17, 0): ─────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────X┼─────┼┼────┼───┼───┼───┼─────────────────────
                       ││││││││││││││      │     ││    │   │   │   │
    (18, 0): ──────────X┼┼┼┼┼┼┼┼┼┼┼┼┼──────┼─────┼┼────┼───┼───┼───┼─────────────────────
                        │││││││││││││      │     ││    │   │   │   │
    (19, 0): ───────────X┼┼┼┼┼┼┼┼┼┼┼┼──────┼─────┼┼────┼───┼───┼───┼─────────────────────
                         ││││││││││││      │     ││    │   │   │   │
    (20, 0): ────────────X┼┼┼┼┼┼┼┼┼┼┼──────┼─────X┼────┼───┼───┼───┼─────────────────────
                          │││││││││││      │      │    │   │   │   │
    (21, 0): ─────────────X┼┼┼┼┼┼┼┼┼┼──────┼──────┼────┼───┼───┼───┼─────────────────────
                           ││││││││││      │      │    │   │   │   │
    (22, 0): ──────────────X┼┼┼┼┼┼┼┼┼──────┼──────┼────X───┼───┼───┼─────────────────────
                            │││││││││      │      │        │   │   │
    (23, 0): ───────────────X┼┼┼┼┼┼┼┼──────┼──────┼────────X───┼───┼─────────────────────
                             ││││││││      │      │            │   │
    (24, 0): ────────────────X┼┼┼┼┼┼┼──────┼──────┼────────────┼───┼─────────────────────
                              │││││││      │      │            │   │
    (25, 0): ─────────────────X┼┼┼┼┼┼──────┼──────┼────────────┼───┼─────────────────────
                               ││││││      │      │            │   │
    (26, 0): ──────────────────X┼┼┼┼┼──────┼──────┼────────────X───┼─────────────────────
                                │││││      │      │                │
    (27, 0): ───────────────────X┼┼┼┼──────┼──────┼────────────────X─────────────────────
                                 ││││      │      │
    (28, 0): ────────────────────X┼┼┼──────┼──────┼──────────────────────────────────────
                                  │││      │      │
    (29, 0): ─────────────────────X┼┼──────┼──────┼──────────────────────────────────────
                                   ││      │      │
    (30, 0): ──────────────────────X┼──────┼──────×──────────────────────────────────────
                                    │      │
    (31, 0): ───────────────────────X──────×─────────────────────────────────────────────
                    └────────────────┘   └──┘   └──┘
    Most common answer was : ('[0 1 0 0 1 0 1 1 0 0 1 0 0 0 0 0]', 2)
    Secret string = [0 1 1 0 0 1 0 1 1 1 1 1 1 1 0 1 0]
    Circuit:
                    ┌─────────────────┐   ┌──┐
    (0, 0): ────H────@─────────────────────H─────────────────────────────────────────────────M('result')───
                     │                                                                       │
    (1, 0): ────H────┼@────────────────────@─────@───@───@───@───@───@───@───@───@───@───H───M─────────────
                     ││                    │     │   │   │   │   │   │   │   │   │   │       │
    (2, 0): ────H────┼┼@───────────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││                   │     │   │   │   │   │   │   │   │   │   │       │
    (3, 0): ────H────┼┼┼@──────────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││                  │     │   │   │   │   │   │   │   │   │   │       │
    (4, 0): ────H────┼┼┼┼@─────────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││                 │     │   │   │   │   │   │   │   │   │   │       │
    (5, 0): ────H────┼┼┼┼┼@────────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││                │     │   │   │   │   │   │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@───────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││               │     │   │   │   │   │   │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@──────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││              │     │   │   │   │   │   │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@─────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││             │     │   │   │   │   │   │   │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││            │     │   │   │   │   │   │   │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@───────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││           │     │   │   │   │   │   │   │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@──────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││          │     │   │   │   │   │   │   │   │   │   │       │
    (12, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼@─────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││         │     │   │   │   │   │   │   │   │   │   │       │
    (13, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││││        │     │   │   │   │   │   │   │   │   │   │       │
    (14, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││││       │     │   │   │   │   │   │   │   │   │   │       │
    (15, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││││││      │     │   │   │   │   │   │   │   │   │   │       │
    (16, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││││││     │     │   │   │   │   │   │   │   │   │   │
    (17, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼×────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───×─────────────────
                      ││││││││││││││││     ││    │   │   │   │   │   │   │   │   │   │   │
    (18, 0): ─────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────X┼────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                       │││││││││││││││      │    │   │   │   │   │   │   │   │   │   │   │
    (19, 0): ──────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼──────┼────X───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                        ││││││││││││││      │        │   │   │   │   │   │   │   │   │   │
    (20, 0): ───────────X┼┼┼┼┼┼┼┼┼┼┼┼┼──────┼────────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                         │││││││││││││      │        │   │   │   │   │   │   │   │   │   │
    (21, 0): ────────────X┼┼┼┼┼┼┼┼┼┼┼┼──────┼────────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                          ││││││││││││      │        │   │   │   │   │   │   │   │   │   │
    (22, 0): ─────────────X┼┼┼┼┼┼┼┼┼┼┼──────┼────────X───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                           │││││││││││      │            │   │   │   │   │   │   │   │   │
    (23, 0): ──────────────X┼┼┼┼┼┼┼┼┼┼──────┼────────────┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                            ││││││││││      │            │   │   │   │   │   │   │   │   │
    (24, 0): ───────────────X┼┼┼┼┼┼┼┼┼──────┼────────────X───┼───┼───┼───┼───┼───┼───┼───┼─────────────────
                             │││││││││      │                │   │   │   │   │   │   │   │
    (25, 0): ────────────────X┼┼┼┼┼┼┼┼──────┼────────────────X───┼───┼───┼───┼───┼───┼───┼─────────────────
                              ││││││││      │                    │   │   │   │   │   │   │
    (26, 0): ─────────────────X┼┼┼┼┼┼┼──────┼────────────────────X───┼───┼───┼───┼───┼───┼─────────────────
                               │││││││      │                        │   │   │   │   │   │
    (27, 0): ──────────────────X┼┼┼┼┼┼──────┼────────────────────────X───┼───┼───┼───┼───┼─────────────────
                                ││││││      │                            │   │   │   │   │
    (28, 0): ───────────────────X┼┼┼┼┼──────┼────────────────────────────X───┼───┼───┼───┼─────────────────
                                 │││││      │                                │   │   │   │
    (29, 0): ────────────────────X┼┼┼┼──────┼────────────────────────────────X───┼───┼───┼─────────────────
                                  ││││      │                                    │   │   │
    (30, 0): ─────────────────────X┼┼┼──────┼────────────────────────────────────X───┼───┼─────────────────
                                   │││      │                                        │   │
    (31, 0): ──────────────────────X┼┼──────┼────────────────────────────────────────┼───┼─────────────────
                                    ││      │                                        │   │
    (32, 0): ───────────────────────X┼──────┼────────────────────────────────────────X───×─────────────────
                                     │      │
    (33, 0): ────────────────────────X──────×──────────────────────────────────────────────────────────────
                    └─────────────────┘   └──┘
    Most common answer was : ('[0 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1]', 1)
    Secret string = [0 0 0 0 0 1 1 1 1 0 1 0 1 0 1 1 1 1]
    Circuit:
                    ┌──────────────────┐   ┌──┐
    (0, 0): ────H────@──────────────────────H─────────────────────────────────────────────M('result')───
                     │                                                                    │
    (1, 0): ────H────┼@─────────────────────H─────────────────────────────────────────────M─────────────
                     ││                                                                   │
    (2, 0): ────H────┼┼@────────────────────H─────────────────────────────────────────────M─────────────
                     │││                                                                  │
    (3, 0): ────H────┼┼┼@───────────────────H─────────────────────────────────────────────M─────────────
                     ││││                                                                 │
    (4, 0): ────H────┼┼┼┼@──────────────────H─────────────────────────────────────────────M─────────────
                     │││││                                                                │
    (5, 0): ────H────┼┼┼┼┼@─────────────────@─────@───@───@───@───@───@───@───@───@───H───M─────────────
                     ││││││                 │     │   │   │   │   │   │   │   │   │       │
    (6, 0): ────H────┼┼┼┼┼┼@────────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││                │     │   │   │   │   │   │   │   │   │       │
    (7, 0): ────H────┼┼┼┼┼┼┼@───────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││               │     │   │   │   │   │   │   │   │   │       │
    (8, 0): ────H────┼┼┼┼┼┼┼┼@──────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││              │     │   │   │   │   │   │   │   │   │       │
    (9, 0): ────H────┼┼┼┼┼┼┼┼┼@─────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││             │     │   │   │   │   │   │   │   │   │       │
    (10, 0): ───H────┼┼┼┼┼┼┼┼┼┼@────────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││            │     │   │   │   │   │   │   │   │   │       │
    (11, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼@───────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││           │     │   │   │   │   │   │   │   │   │       │
    (12, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼@──────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││          │     │   │   │   │   │   │   │   │   │       │
    (13, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼@─────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││││         │     │   │   │   │   │   │   │   │   │       │
    (14, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼@────────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││││        │     │   │   │   │   │   │   │   │   │       │
    (15, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼@───────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││││││       │     │   │   │   │   │   │   │   │   │       │
    (16, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼@──────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     │││││││││││││││││      │     │   │   │   │   │   │   │   │   │       │
    (17, 0): ───H────┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼@─────┼H────┼───┼───┼───┼───┼───┼───┼───┼───┼───────M─────────────
                     ││││││││││││││││││     │     │   │   │   │   │   │   │   │   │
    (18, 0): ────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───┼───┼───┼───┼───×───×─────────────
                      │││││││││││││││││     │     │   │   │   │   │   │   │   │   │   │   │
    (19, 0): ─────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                       ││││││││││││││││     │     │   │   │   │   │   │   │   │   │   │   │
    (20, 0): ──────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                        │││││││││││││││     │     │   │   │   │   │   │   │   │   │   │   │
    (21, 0): ───────────X┼┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                         ││││││││││││││     │     │   │   │   │   │   │   │   │   │   │   │
    (22, 0): ────────────X┼┼┼┼┼┼┼┼┼┼┼┼┼─────┼─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                          │││││││││││││     │     │   │   │   │   │   │   │   │   │   │   │
    (23, 0): ─────────────X┼┼┼┼┼┼┼┼┼┼┼┼─────X─────┼───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                           ││││││││││││           │   │   │   │   │   │   │   │   │   │   │
    (24, 0): ──────────────X┼┼┼┼┼┼┼┼┼┼┼───────────X───┼───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                            │││││││││││               │   │   │   │   │   │   │   │   │   │
    (25, 0): ───────────────X┼┼┼┼┼┼┼┼┼┼───────────────X───┼───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                             ││││││││││                   │   │   │   │   │   │   │   │   │
    (26, 0): ────────────────X┼┼┼┼┼┼┼┼┼───────────────────X───┼───┼───┼───┼───┼───┼───┼───┼─────────────
                              │││││││││                       │   │   │   │   │   │   │   │
    (27, 0): ─────────────────X┼┼┼┼┼┼┼┼───────────────────────┼───┼───┼───┼───┼───┼───┼───┼─────────────
                               ││││││││                       │   │   │   │   │   │   │   │
    (28, 0): ──────────────────X┼┼┼┼┼┼┼───────────────────────X───┼───┼───┼───┼───┼───┼───┼─────────────
                                │││││││                           │   │   │   │   │   │   │
    (29, 0): ───────────────────X┼┼┼┼┼┼───────────────────────────┼───┼───┼───┼───┼───┼───┼─────────────
                                 ││││││                           │   │   │   │   │   │   │
    (30, 0): ────────────────────X┼┼┼┼┼───────────────────────────X───┼───┼───┼───┼───┼───┼─────────────
                                  │││││                               │   │   │   │   │   │
    (31, 0): ─────────────────────X┼┼┼┼───────────────────────────────┼───┼───┼───┼───┼───┼─────────────
                                   ││││                               │   │   │   │   │   │
    (32, 0): ──────────────────────X┼┼┼───────────────────────────────X───┼───┼───┼───┼───┼─────────────
                                    │││                                   │   │   │   │   │
    (33, 0): ───────────────────────X┼┼───────────────────────────────────X───┼───┼───┼───┼─────────────
                                     ││                                       │   │   │   │
    (34, 0): ────────────────────────X┼───────────────────────────────────────X───┼───┼───×─────────────
                                      │                                           │   │
    (35, 0): ─────────────────────────X───────────────────────────────────────────X───×─────────────────
                    └──────────────────┘   └──┘
    Most common answer was : ('[1 0 1 1 0 1 0 1 1 1 0 1 1 0 0 0 1 1]', 1)
    Secret string = [0 1 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1]

```python
import matplotlib.pyplot as plt

# Plotting the time taken by the algorithm against the number of qubits in the circuit to analyze scalability of the algorithm
plt.plot(range(3,21),t)
plt.title('Time vs Bits')
plt.show()

```

```python

```