Je trouve difficile de mélanger un tableau de façon déterministe, c'est-à-dire avec une graine aléatoire dans Rust. Ce que j'essaie d'obtenir (en pseudo-code) :
let v = vec![0, 1, 2, 3];
pseudo_shuffle(v, randomSeed1) // always produces e.g. [3,1,2,0]
pseudo_shuffle(v, randomSeed2) // always produces e.g. [0,2,3,1]
Dans une autre réponse de Stack Overflow J'ai appris à utiliser rand::Rng::shuffle()
pour mélanger un vecteur de manière non-déterministe, mais il ne semble pas fournir d'API pour appliquer une graine aléatoire à la fonction de génération, et j'ai moi-même du mal à trouver une solution qui n'utilise pas de ridicule n!
algorithme de complexité.