Combinaisons de plusieurs chiffres de 0 à n

Fermé
yori2 Messages postés 1 Date d'inscription dimanche 6 juillet 2014 Statut Membre Dernière intervention 7 juillet 2014 - 7 juil. 2014 à 15:14
vliead Messages postés 1 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 12 juillet 2014 - 12 juil. 2014 à 00:23
Bonjour à tous !

Je me permet de de faire appel à vous car je suis dans une impasse.

Je cherche à créer une fonction Matlab (ou autre) qui génère une matrice correspondant à l'ensemble des combinaisons de chiffres de 0 à n.
Chaque ligne correspond à une solution différente et chaque colonne contient un des chiffres.
En gros il me faudrait une matrice de cette forme dans le cas d'une combinaison de 4 chiffres:
a b c d
0 0 0 0
0 0 0 1
0 0 0 2
0 0 0 n
0 0 1 0
0 0 n 0
0 0 n n
n n n n


J'ai pensé à imbriquer plusieurs boucles mais c'est assez lourd si le nombre de chiffre est important.

Pour ceux que ça intéresse, je veux utiliser cette matrice pour calculer l'ensemble des solutions d'une fonction de type:

R= Lb-(a*L1+b*L2+c*L3+d*L4)

afin de déterminer la combinaison des entiers a,b,c,d bornés qui permettent d'obtenir Rmini.

Si vous trouvez une autre solution je suis preneur aussi!!!

Merci d'avance pour votre aide !

1 réponse

vliead Messages postés 1 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 12 juillet 2014
Modifié par baladur13 le 12/07/2014 à 09:43
Hi
n=4; %nb digits
p=3; %nb digits to choose
chainvargrid='[';
chainvarx='[';
for q=0:p-1
chainvargrid=[chainvargrid,'x',num2str(q),','];
chainvarx=[chainvarx,'x',num2str(q),'(:),'];
end
chainvargrid=[chainvargrid(1:end-1),']'];
chainvarx=[chainvarx(1:end-1),']'];
eval([chainvargrid,'=ndgrid(0:n-1);']);
eval(['x=',chainvarx,';']);
xx=unique(sort(x,2),'rows');
disp('Digits matrix with order:');
disp(x);
disp('Digits matrix without order:');
disp(xx);
Insanités supprimés Modération CCM
0