Automatisation d'une suite

neph

XLDnaute Nouveau
Bonjour à tous,

J’aurai besoin de vos lumières pour résoudre un exercice de suite numérique sur excel.

Je pense que l’utilisation de macro ou de script sera obligatoire.

Je vous pose le problème.

Soit une suite de 9 chiffres aléatoire.

Dans notre exemple nous allons choisir cette suite :

2-3-5-6-9-7-1-4-8

Le but de l’exercice va être de remettre en ordre cette suite en comptant 1,2,3,4,5,6,7,8,9.

C’est-à-dire, que pour la suite 2-3-5-6-9-7-1-4-8

2 = 1, 3 = 2, 5 = 3, 6 = 4, 9 = 5, 7 = 6, 1 = 7, 4 = 8, 8 = 9

Dans ce cas aucun chiffre ne correspond, nous allons décaler le premier chiffre de la suite de départ à la fin.

Donc la nouvelle suite : 3-5-6-9-7-1-4-8-2

Puis nous recommençons le procédé,

3 = 1, 5 = 2, 6 = 3, 9 = 4, 7 = 5, 1 = 6, 4 = 7, 8 = 8

Donc nous avons le 8 qui est égale à lui-même, il sera donc le premier chiffre de notre « suite résultat »

Il reste donc plus que 8 chiffres à réorganiser, soit 3-5-6-9-7-1-4-2

Nous reprenons là où nous nous sommes arrêtés,

2 = 9, puis nous repartons au début avec, 3 = 1, 5 = 2, 6 = 3, 9 = 4, 7 = 5, 1 = 6, 4 = 7, 2 = 8, 3 = 9,puis 5 = 1, 6 = 2, 9 = 3, 7 = 4, 1 = 5, 4 = 6, 2 = 7, 3 = 8, 5 = 9 puis, 6 = 1, 9 = 2, 7 = 3, 1 = 4, 4 = 5, 2 = 6, 3 = 7, 5 = 8, 6 = 9, puis 9 = 1, 7 = 2, 1 = 3, 4 = 4

Donc nous avons le 4 qui est égale à lui-même, il sera donc le deuxième chiffre de notre « suite résultat »

Il reste donc plus que 7 chiffres à réorganiser, soit 3-5-6-9-7-1-2

Et on répète le même procédé en utilisant les mêmes règles.

Dans notre exemple, on se retrouve bloqué à 3 chiffres 2-3-1, il suffira, comme au début de décaler le premier chiffre de la suite à la fin, soit 3-1-2.

Cela ne marche toujours pas, donc on décale de nouveau jusqu’à que cela marche, soit 1-2-3, et nous pouvons finir la « suite résultat » qui est égale à 8-4-9-5-6-7-1-2-3

Je reste disponible s’il y a des précisions à apporter, car le système de comptage n’est pas facile à expliquer

Je vous remercie par avance pour vos solutions
 

neph

XLDnaute Nouveau
Bonjour @ROGER2327 ,

Vous avez très bien compris le système de séquence, donc ce n'est peut-être pas un miracle.

Pour aller plus loin, imaginons que la séquence ne contienne plus 9 chiffres, mais maintenant 10 chiffres.
Et on ne compte plus de 1 à 9, mais de 1 à 10 (car la suite contient 10 chiffres).
J'ai essayé de modifier votre script pour ce cas de figure, mais sans succès,
Je vous mets la modification en pièces jointes,

Pouvez-vous me dire où sont mes erreurs ?

En vous remerciant,
Neph
 

Pièces jointes

  • Bricolage (23) test en 10.xlsm
    17.9 KB · Affichages: 53

ROGER2327

XLDnaute Barbatruc
Re...

Vous avez toujours parlé de chiffres, pas de nombres. Si vous introduisez maintenant le nombre dix, il vous faut le représenter dans une base de numération supérieure à dix. La base onze, par exemple, dans laquelle on représentera les nombres zéro, un, deux, ..., neuf par les chiffres 0, 1, 2, ..., 9 et le nombre dix par le chiffre A (ou tout autre signe unique que vous voudrez...). Alors on pourra adapter la fonction prout. (Voyez un essai en pièce jointe : à vous de vérifier si oui ou non cet essai fait ce que vous voulez.)
Par contre, si vous tenez absolument à travailler avec des nombres (lesquels peuvent s'écrire avec plusieurs chiffres), il faut pratiquement réécrire toute la fonction. Comme je n'ai toujours pas compris par quel miracle je suis arrivé au résultat, je ne suis pas certain d'y parvenir.​

Bonne journée.


ℝOGER2327
#8390


Samedi 7 As 144 (Saint Cyrano de Bergerac, explorateur - fête Suprême Quarte)
19 Brumaire An CCXXV, 1,5140h - grenade
2016-W45-3T03:38:01Z
 

Pièces jointes

  • Bricolage (25).xlsm
    20.7 KB · Affichages: 60

neph

XLDnaute Nouveau
Bonjour @ROGER2327 ,

Votre solution avec le chiffre A fonctionne, c'est un nouveau miracle.
Je n'aurai qu'à remplacer dans la solution A=10, B=11, C=12, etc..., ce qui n'est pas du tout gênant.
Je vais essayer de faire par moi même une séquence de 11 nombres ( 9 chiffres+A+B)

Bonne journée également,
Neph
 

neph

XLDnaute Nouveau
Bonjour,

Je vais encore avoir besoin de votre aide,
J'ai en effet modifié la feuille xls et le script, mais il semble y avoir une faute sur cette ligne pour intégrer le B, dans la séquence ( de 11 nombres ).

For i = 1 To 9: a(i) = i: Next: a(i) = "A" to "B": For i = 10 To 1 Step -1: t = a(1 + Int(i * Rnd)): a(1 + Int(i * Rnd(0))) = a(i): a(i) = t: Next

le Next: a(i) = "A" to "B" n'est pas accepté, quel serait la formule correcte ?

Merci par avance,
Neph
 

Pièces jointes

  • Séquence 11.xlsm
    20.4 KB · Affichages: 57

Discussions similaires

Réponses
5
Affichages
266

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 979
dernier inscrit
bderradji