let next_step prng nb_updates transition_rule configuration_in configuration_out =
let ring_size = Array.length configuration_in in
(* assert (ring_size = Array.length configuration_in ); *)
assert (ring_size = Array.length configuration_out);
for i=0 to pred ring_size do configuration_out.(i) <- configuration_in.(i) done;
for i=1 to nb_updates do
let updated = Random.State.int prng ring_size in
configuration_out.(updated) <-
transition_rule configuration_out updated;
done;