Je souhaite produire une séquence aléatoire de nombres entre une plage, par exemple 100 to 200
. Après un certain temps, en fonction de certains événements, je veux produire une nouvelle séquence entre la même gamme (100 à 200), mais cette fois je veux exclure certains nombres. Par exemple, je ne veux pas [150,165,170]
.Exclure dynamiquement certains nombres d'une séquence générée aléatoirement
Et la prochaine fois, ces numéros exclus peuvent être inclus ou non dans la séquence.
Une approche possible pourrait être un tableau de nombres comme ceci:
int rndm[] {100,101,102,103,...};
et utiliser l'index du tableau pour générer un nombre aléatoire à un moment:
random(rndm[0-99]);
Mais je dois utiliser le moins de structures d'instructions/de données possible afin d'atteindre la performance.
J'utilise C pour ce code et j'utilise random()
ou randomSeed(seed)
et je veux savoir ce que l'approche la plus efficace pour traiter cette question est, en termes de structures de données devraient être utilisées pour la vitesse et de la mémoire.
Votre approche semble correcte. Tout le reste aurait besoin de beaucoup plus d'informations sur vos contraintes, votre plateforme, et en particulier votre langage de programmation. C et C++ sont deux langages différents, et une spécialisation aléatoire en C++ 11 n'aide certainement pas non plus. –
Puisqu'il s'agit d'une expérience, je peux utiliser C ou C++. et la plate-forme pourrait être n'importe quel type de matériel. Je veux savoir comment je peux exclure certains nombres sur n'importe quelle course. – Adel
Voulez-vous que la nouvelle séquence de numéros soit la même que l'ancienne, sauf que certains numéros doivent être ignorés? – user3629249