Skip to content

Instantly share code, notes, and snippets.

View JesusCastroFernandez's full-sized avatar
💭
Happy

JesusCastroFernandez

💭
Happy
View GitHub Profile
@JesusCastroFernandez
JesusCastroFernandez / gist:39bcbd3d2a51c2c173812837e6ee9b87
Last active May 26, 2023 10:57
Ejemplo de código para la simulación cuántica en QuTiP. Este código simula la evolución temporal de un qubit en el Hamiltoniano definido. La evolución se grafica al final..
```python
import numpy as np
from qutip import *
# Definir los estados de la base
up = basis(2, 0)
down = basis(2, 1)
# Definir los operadores de Pauli
sigma_x = sigmax()
@JesusCastroFernandez
JesusCastroFernandez / gist:8814cdafb90a21d37f80e8f9fddfb225
Created May 26, 2023 11:02
El código del algoritmo de Shor en Qiskit.
from qiskit import QuantumCircuit, Aer, execute
from qiskit.aqua import QuantumInstance
from qiskit.aqua.algorithms import Shor
number_to_factor = 15
backend = Aer.get_backend('qasm_simulator')
quantum_instance = QuantumInstance(backend)
shor = Shor(quantum_instance=quantum_instance)
@JesusCastroFernandez
JesusCastroFernandez / gist:9bf2db4a000b163b8967ae0ead3c91be
Created May 26, 2023 11:04
El código del algoritmo de Deutsch-Jozsa en Qiskit
from qiskit import QuantumCircuit, execute, Aer
def deutsch_jozsa_oracle(n):
oracle_qc = QuantumCircuit(n+1)
b_str = format(7, f'0{n}b')
for qubit_idx in range(n):
if b_str[qubit_idx] == '1':
oracle_qc.x(qubit_idx)
oracle_qc.x(n)
for qubit_idx in range(n):
@JesusCastroFernandez
JesusCastroFernandez / gist:731cce299ef2e94b62dab23afc94554d
Created May 26, 2023 11:05
El código del algoritmo de Deutsch-Jozsa en Q#
open Microsoft.Quantum.Diagnostics;
operation DeutschJozsaAlgorithm (f : ((Qubit[], Qubit) => Unit is Adj)) : Bool {
using (register = Qubit[2]) {
// Prepare the initial state.
H(register[0]);
X(register[1]);
H(register[1]);
// Apply the oracle.
@JesusCastroFernandez
JesusCastroFernandez / gist:e304ec5e765e5d6c36f54dc12f54fbc2
Created May 26, 2023 11:06
Ejemplo simple de un programa cuántico que utiliza el algoritmo de Grover para buscar una entrada en una lista estructurada
open Microsoft.Quantum.Diagnostics;
open Microsoft.Quantum.Search;
operation GroverSearchStructured() : Unit {
// Define the list to search.
let markedElements = [(0, 1), (1, 0), (1, 1)];
// Define the number of qubits needed to represent the list.
let nQubits = 2;
@JesusCastroFernandez
JesusCastroFernandez / gist:70d4e80e800c56a2d2937505fbdd751b
Created May 26, 2023 11:07
Ejemplo de código cuántico en Q# que muestra cómo implementar el algoritmo de Grover para buscar una entrada en una lista no estructurada
open Microsoft.Quantum.Diagnostics;
open Microsoft.Quantum.Search;
operation GroverSearch() : Unit {
// Define the list to search.
let markedElements = [1, 3];
// Define the number of qubits needed to represent the list.
let nQubits = 2;
@JesusCastroFernandez
JesusCastroFernandez / gist:d06ac8238d294a8837367d6e9d0a544e
Created May 26, 2023 11:08
Ejemplo de código cuántico en Q# que muestra cómo simular una molécula de hidrógeno
open Microsoft.Quantum.Chemistry;
operation HydrogenMolecule() : Unit {
// Define the molecular Hamiltonian.
let hamiltonian = Hydrogen();
// Allocate qubits.
using (qubits = Qubit[hamiltonian.NSpinOrbitals]) {
// Prepare the initial state.
PrepareAndMeasureGroundState(hamiltonian, qubits);
@JesusCastroFernandez
JesusCastroFernandez / gist:0144cba91cc94c0ce509770aa8b4dc11
Created May 26, 2023 11:10
Ejemplo de código cuántico en Q# que muestra cómo crear un circuito cuántico simple que consta de dos qubits y aplicar una puerta cuántica a cada uno de ellos
open Microsoft.Quantum.Primitive;
operation SimpleQuantumProgram() : Unit {
// Allocate two qubits.
using (qubits = Qubit[2]) {
// Apply a Hadamard gate to the first qubit.
H(qubits[0]);
// Apply a CNOT gate between the first and second qubits.
CNOT(qubits[0], qubits[1]);
@JesusCastroFernandez
JesusCastroFernandez / gist:cdef508f160b4d82412fad1afbc5f599
Created May 26, 2023 11:15
Algoritmo de Búsqueda Cuántica. El algoritmo busca una entrada en una lista no ordenada y devuelve la posición de la entrada. En este ejemplo se busca una entrada en una lista de dos elementos.
import numpy as np
from qiskit import QuantumCircuit, Aer, execute
def grovers_algorithm():
# Definir el número de qubits y el número de iteraciones
n = 2
iterations = 2
# Inicializar los qubits y el oráculo
qc = QuantumCircuit(n + 1, n)
@JesusCastroFernandez
JesusCastroFernandez / gist:4cacb29402b468453b0fa4072c306b69
Created May 26, 2023 11:22
Ejemplo de código para el algoritmo de Shor.
from qiskit import QuantumCircuit, Aer, execute
from qiskit.aqua import QuantumInstance
from qiskit.aqua.algorithms import Shor
n = 15
a = 2
backend = Aer.get_backend('qasm_simulator')
quantum_instance = QuantumInstance(backend, shots=1024)