Admettons que j'ai une suite de 100 entiers, de 1 à 100.
Lorsque je le désire, je retire un de ces entiers de la suite pour la mettre dans une autre (peu m'importe le nombre choisi).
Y'a t'il moyen de définir un alogrithme pour transformer en un entier exploitable la suite de nombres ?
Quand je dis suite il n'est pas nécessaire que les nombres soient rangés par ordre croissant ou décroissant, ni même ordonnés d'une façon quelquonque.
Comme je me rend compte que je ne suis pas clair je vais faire un petit exemple :
Pour faire plus simple je prendrais une suite de 5 nombres
Au départ la suite 1 contient tous les nombres rangés par ordre croissant et la suite 2 ne contient aucun nombre
Je prends le nombre 1 de la suite 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 suite 1 1,2,3,4,5 suite 2
Je prends le nombre 2 de la suite 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 suite 1 2,3,4,5 suite 2 1
Je prends le nombre 3 de la suite 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 suite 1 3,4,5 suite 2 1,2
Je remet le nombre 2 dans la suite 1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 suite 1 4,5 suite 2 1,2,3
Je voudrais pour une suite de 100 nombres (de 1 à 100 ) pouvoir effectuer ce genre d'opération.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 suite 1 4,5,2 suite 2 1,3
Notez que dans l'exemple j'ai pris les entiers les plus faible de la liste, mais cela n'a aucune importance, n'importe quel entier de la suite me convient parfaitement.
De même qu'a la fin la suite 1 donne 4;5;2 , si il faut la réordonner pour rendre l'algorithme plus rapide ce n'est pas un souci, je veux dire l'ordre des nombres n'a vraiment aucune importance, seul le fait de pouvoir extraire un nombre quelquonque de la suite 1 ou 2 pour le mettre dans l'autre suite est important.
Ma seule "exigence" est que le code soit le plus optimisé possible
Suis je clair ?
PS : la plage d'un entier est de -2^32 + 1 <= X <= 2^32 - 1
Partager