Je dois créer une collection de vecteurs stochastiques (VBA) avec les caractéristiques suivantes : a) chaque vecteur est un tableau à 10 dimensions ; b) toutes les composantes non nulles du vecteur ont la même valeur. La collection doit avoir tous les vecteurs possibles dans ces conditions.
J'ai commencé à le faire en ajoutant des vecteurs un par un à la collection, comme ceci :
Dim DB As New Collection: Set DB = New Collection
'First set:
DB.Add Array(1, 0, 0, 0, 0, 0, 0, 0, 0, 0)
DB.Add Array(0, 1, 0, 0, 0, 0, 0, 0, 0, 0)
DB.Add Array(0, 0, 1, 0, 0, 0, 0, 0, 0, 0)
...
DB.Add Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 1)
'Second set:
DB.Add Array(1/2, 1/2, 0, 0, 0, 0, 0, 0, 0, 0)
DB.Add Array(1/2, 0, 1/2, 0, 0, 0, 0, 0, 0, 0)
DB.Add Array(1/2, 0, 0, 1/2, 0, 0, 0, 0, 0, 0)
...
DB.Add Array(0, 0, 0, 0, 0, 0, 0, 0, 1/2, 1/2)
'Third set:
DB.Add Array(1/3, 1/3, 1/3, 0, 0, 0, 0, 0, 0, 0)
DB.Add Array(1/3, 1/3, 0, 1/3, 0, 0, 0, 0, 0, 0)
...
Et ainsi de suite jusqu'à obtenir le dernier vecteur (qui constitue l'ensemble du dixième ensemble) :
...
'Tenth set:
DB.Add Array(1/10, 1/10, 1/10, 1/10, 1/10, 1/10, 1/10, 1/10, 1/10, 1/10)
Eh bien, comme vous le savez peut-être, la collection finira par avoir 1023 vecteurs, donc ma question est très simple (je crois que la question est la seule chose simple) : Existe-t-il un moyen de faire cela sans écrire explicitement les 1023 vecteurs ?
Laissez-moi vous montrer ce que j'ai obtenu jusqu'à présent :
Tout d'abord, je peux obtenir le résultat en obtenant les mêmes tableaux avec des 1 à la place des composants de la fraction.
Deuxièmement, je ne peux pas le faire pour la première série elle-même. Comment je peux faire quelque chose comme
For x = 0 to 9
DB.Add Array(x, 0, 0, 0, 0, 0, 0, 0, 0, 0)
Next x
travailler pour donner le résultat que je prétends ? Veuillez noter que je sais que le dernier bout de code ne me donne pas le premier ensemble de vecteurs... C'est juste pour vous donner une idée de ce que je demande.
En ce qui concerne la troisième place, je pense qu'une fois que j'ai obtenu de l'aide pour résoudre le problème de la première série, je suis capable de faire de même pour les autres. Néanmoins, si vous êtes désireux de m'aider à faire tout le script jusqu'à la dixième série, qui suis-je pour dire non, eh eh !
Je sais que c'est un peu délicat cette fois-ci ! Toute aide sera très appréciée. Et, comme toujours, merci d'avance à tous.