Skip to content

Instantly share code, notes, and snippets.

@graylan0
Created February 3, 2024 10:35
Show Gist options
  • Save graylan0/53d559563ab4e6c1cd84dfc3bb157af7 to your computer and use it in GitHub Desktop.
Save graylan0/53d559563ab4e6c1cd84dfc3bb157af7 to your computer and use it in GitHub Desktop.
import pennylane as qml
import numpy as np
dev = qml.device('default.qubit', wires=4)
def quantum_circuit(color_code, datetime_factor):
r, g, b = [int(color_code[i:i+2], 16) for i in (1, 3, 5)]
r, g, b = r / 255.0, g / 255.0, b / 255.0
qml.RY(r * np.pi, wires=0)
qml.RY(g * np.pi, wires=1)
qml.RY(b * np.pi, wires=2)
qml.RY(datetime_factor * np.pi, wires=3)
qml.CNOT(wires=[0, 1])
qml.CNOT(wires=[1, 2])
qml.CNOT(wires=[2, 3])
return qml.state()
def encode_metrics_to_rgb(download_speed, latency, stability):
r = int(download_speed * 255)
g = int((1-latency) * 255) # Inverting latency for representation
b = int(stability * 255)
return f'#{r:02x}{g:02x}{b:02x}'
def mixed_state_to_color_code(mixed_state):
mixed_state = np.array(mixed_state)
probabilities = np.abs(mixed_state)**2
probabilities /= np.sum(probabilities)
r_prob = probabilities[:len(probabilities)//3]
g_prob = probabilities[len(probabilities)//3:2*len(probabilities)//3]
b_prob = probabilities[2*len(probabilities)//3:]
r = int(np.sum(r_prob) * 255)
g = int(np.sum(g_prob) * 255)
b = int(np.sum(b_prob) * 255)
return f'#{r:02x}{g:02x}{b:02x}'
color_code = encode_metrics_to_rgb(0.8, 0.2, 0.9)
datetime_factor = 0.5 # Example value
resulting_state = quantum_circuit(color_code, datetime_factor)
resulting_color_code = mixed_state_to_color_code(resulting_state)
print(resulting_color_code)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment