CODE EXAMPLES
Quantum Computing Code Examples
Ready-to-use code samples to get you started with quantum algorithms
🐍 Python Examples
Basic Bell State Creation
import uvq
# Initialize UVQ client
client = uvq.QuantumClient(api_key="uvq_live_your_key_here")
# Create Bell state circuit
circuit = uvq.Circuit()
circuit.h(0) # Hadamard gate on qubit 0
circuit.cnot(0, 1) # CNOT gate from qubit 0 to 1
circuit.measure([0, 1]) # Measure both qubits
# Execute circuit
job = client.execute(circuit, shots=1024)
result = job.get_result()
print(f"Bell state results: {result.get_counts()}")
# Expected output: {'00': ~512, '11': ~512}
Grover's Search Algorithm
import uvq
import numpy as np
def grovers_search(client, marked_item, num_items=4):
"""
Grover's algorithm to find a marked item
"""
num_qubits = int(np.log2(num_items))
circuit = uvq.Circuit()
# Initialize superposition
for i in range(num_qubits):
circuit.h(i)
# Grover iterations
iterations = int(np.pi/4 * np.sqrt(num_items))
for _ in range(iterations):
# Oracle (marks the target item)
circuit.oracle(marked_item, num_qubits)
# Diffusion operator
circuit.diffusion(num_qubits)
circuit.measure_all()
# Execute and get result
job = client.execute(circuit, shots=1000)
return job.get_result().get_counts()
# Usage
client = uvq.QuantumClient(api_key="your_api_key")
result = grovers_search(client, marked_item=3)
print(result) # Should find item 3 with high probability
🟨 JavaScript/Node.js Examples
Quantum Random Number Generator
const UVQ = require('uvq-sdk');
const client = new UVQ.QuantumClient({
apiKey: 'uvq_live_your_key_here',
baseUrl: 'https://api.uvq.net/v1'
});
async function generateQuantumRandom(bits = 8) {
const circuit = new UVQ.Circuit();
// Add Hadamard gates to create superposition
for (let i = 0; i < bits; i++) {
circuit.h(i);
}
// Measure all qubits
circuit.measureAll();
try {
const job = await client.execute(circuit, { shots: 1 });
const result = await job.getResult();
// Convert measurement to integer
const bitString = Object.keys(result.counts)[0];
return parseInt(bitString, 2);
} catch (error) {
console.error('Quantum execution failed:', error);
throw error;
}
}
// Usage
generateQuantumRandom(8)
.then(randomNum => {
console.log(`True quantum random number: ${randomNum}`);
})
.catch(console.error);
Quantum Teleportation Protocol
const UVQ = require('uvq-sdk');
async function quantumTeleportation(client, stateToTeleport) {
const circuit = new UVQ.Circuit();
// Prepare the state to teleport on qubit 0
if (stateToTeleport.includes('X')) circuit.x(0);
if (stateToTeleport.includes('Y')) circuit.y(0);
if (stateToTeleport.includes('Z')) circuit.z(0);
// Create Bell pair between qubits 1 and 2
circuit.h(1);
circuit.cnot(1, 2);
// Bell measurement on qubits 0 and 1
circuit.cnot(0, 1);
circuit.h(0);
circuit.measure([0, 1]);
// Apply corrections to qubit 2 based on measurement
circuit.conditionalX(2, 1); // X correction if qubit 1 is |1⟩
circuit.conditionalZ(2, 0); // Z correction if qubit 0 is |1⟩
// Measure the teleported state
circuit.measure(2);
const job = await client.execute(circuit, { shots: 1000 });
return await job.getResult();
}
// Usage
const client = new UVQ.QuantumClient({apiKey: 'your_key'});
quantumTeleportation(client, 'X') // Teleport |+⟩ state
.then(result => console.log('Teleportation result:', result));
🔗 cURL/REST API Examples
Simple Hadamard Gate
curl -X POST https://api.uvq.net/v1/quantum/execute \
-H "Authorization: Bearer uvq_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"circuit": {
"qubits": 1,
"gates": [
{"type": "H", "target": 0}
],
"measurements": [0]
},
"shots": 1000
}'
Quantum Fourier Transform
curl -X POST https://api.uvq.net/v1/quantum/execute \
-H "Authorization: Bearer uvq_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"circuit": {
"qubits": 3,
"gates": [
{"type": "H", "target": 0},
{"type": "CRZ", "control": 1, "target": 0, "angle": 1.5708},
{"type": "CRZ", "control": 2, "target": 0, "angle": 0.7854},
{"type": "H", "target": 1},
{"type": "CRZ", "control": 2, "target": 1, "angle": 1.5708},
{"type": "H", "target": 2},
{"type": "SWAP", "targets": [0, 2]}
],
"measurements": [0, 1, 2]
},
"shots": 1024
}'
🚀 Advanced Examples
Variational Quantum Eigensolver (VQE)
import uvq
import numpy as np
from scipy.optimize import minimize
def vqe_ansatz(params, num_qubits):
"""Create parameterized quantum circuit for VQE"""
circuit = uvq.Circuit()
# Layer 1: RY rotations
for i in range(num_qubits):
circuit.ry(i, params[i])
# Layer 2: Entangling gates
for i in range(num_qubits - 1):
circuit.cnot(i, i + 1)
# Layer 3: More RY rotations
for i in range(num_qubits):
circuit.ry(i, params[num_qubits + i])
return circuit
def cost_function(params, client, hamiltonian, num_qubits):
"""Compute expectation value of Hamiltonian"""
circuit = vqe_ansatz(params, num_qubits)
# Add measurements for each Pauli term in Hamiltonian
expectation = 0
for pauli_term, coeff in hamiltonian:
temp_circuit = circuit.copy()
temp_circuit.add_pauli_measurement(pauli_term)
job = client.execute(temp_circuit, shots=1000)
result = job.get_result()
expectation += coeff * result.expectation_value()
return expectation
# H2 molecule Hamiltonian example
H2_hamiltonian = [
('II', -1.0523732),
('IZ', -0.39793742),
('ZI', -0.39793742),
('ZZ', -0.01128010),
('XX', 0.18093119)
]
# Optimize
client = uvq.QuantumClient(api_key="your_key")
initial_params = np.random.random(4) # 2 qubits, 2 layers
result = minimize(
cost_function,
initial_params,
args=(client, H2_hamiltonian, 2),
method='COBYLA'
)
print(f"Ground state energy: {result.fun}")
print(f"Optimal parameters: {result.x}")
📦 SDK Installation
Python SDK
pip install uvq-quantum
Node.js SDK
npm install uvq-sdk
Configuration
# Set environment variable
export UVQ_API_KEY="uvq_live_your_key_here"
# Or create config file ~/.uvq/config.json
{
"api_key": "uvq_live_your_key_here",
"base_url": "https://api.uvq.net/v1",
"timeout": 30
}