Shuffle
The shuffle operation creates a state with randomly permuted values. The shuffle is deterministic when a seed is provided.
from statetracker import Manager, State, shuffle
with Manager():
A = State(num_values=5, name="A")
# Random permutation with seed for reproducibility
B = shuffle(A, seed=42)
for value in B:
print(f"B={value}, A={A.value}")
B=0, A=3
B=1, A=1
B=2, A=2
B=3, A=4
B=4, A=0
You can also provide an explicit permutation:
with Manager():
A = State(num_values=4, name="A")
# Explicit permutation: reverse order
B = shuffle(A, permutation=[3, 2, 1, 0])
for value in B:
print(f"B={value}, A={A.value}")
B=0, A=3
B=1, A=2
B=2, A=1
B=3, A=0