-
Notifications
You must be signed in to change notification settings - Fork 1
/
deut.qasm
48 lines (48 loc) · 2.33 KB
/
deut.qasm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
OPENQASM 2.0;
include "qelib1.inc";
qreg q[0];
creg c[0];
// Istruzione non riconosciuta: #include "quantum_sim.h"
// Istruzione non riconosciuta: #include <stdio.h>
// Istruzione non riconosciuta: #include <stdlib.h>
// Istruzione non riconosciuta: #include <complex.h>
// Istruzione non riconosciuta: #include <math.h>
// Istruzione non riconosciuta:
// Istruzione non riconosciuta:
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: void circuit() {
// Istruzione non riconosciuta: int numQubits = 2;
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: // Inizializzazione degli stati: |0>|1>
x q[1];
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: // Applica Hadamard a entrambi i qubit
h q[0];
h q[1];
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: printf("Stato dopo Hadamard su entrambi i qubit:\n");
// Istruzione non riconosciuta: printState(state);
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: // Implementazione dell'oracolo U_f: qui useremo una funzione bilanciata
// Istruzione non riconosciuta: // Supponiamo che f(x) = x (quindi l'oracolo inverte il secondo qubit se il primo è 1)
cx q[0],q[1];
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: printf("Stato dopo l'applicazione dell'oracolo U_f (bilanciato):\n");
// Istruzione non riconosciuta: printState(state);
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: // Applica Hadamard al primo qubit
h q[0];
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: printf("Stato dopo l'ultima applicazione di Hadamard al primo qubit:\n");
// Istruzione non riconosciuta: printState(state);
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: // Misura il primo qubit per determinare se la funzione è costante o bilanciata
// Istruzione non riconosciuta: int* results = measure_all(state);
// Istruzione non riconosciuta: printf("Risultato della misura:\n");
// Istruzione non riconosciuta: printf("Qubit 0: %d (0 = costante, 1 = bilanciata)\n", results[0]);
// Istruzione non riconosciuta:
// Istruzione non riconosciuta: // Pulizia della memoria
// Istruzione non riconosciuta: free(results);
// Istruzione non riconosciuta: freeState(state);
// Istruzione non riconosciuta: }
// Istruzione non riconosciuta: