Programmation dans MATLAB
Salut messieurs... Je veux générer aléatoirement n (entier ) nombre compris entre 0 et 100 sans le nombre 0 évidement dans le nombre 100...il faut nécessairement que la somme de tous ces nombre soit égale à 100.
Programmation dans MATLAB
Bonjour Brezesky,
Je n'ai pas très bien compris ta question. Si tu souhaites générer n entiers aléatoires compris entre 1 et 100, tu peux utiliser la fonction "randi" de Matlab :
Code:
1 2 3
|
n = 100;
entierAleatoire = randi([1 100],1,n); |
S'il faut absolument que la somme des entiers soit égale à 100, tu as un problème quant au critère "aléatoire". En effet, imaginons que tu prennes n = 100, alors la seule possibilité est de prendre un vecteur rempli de 1 (puisque le 0 n'est pas inclus dans les possibilités) : tu n'as donc plus de critères aléatoires. Si c'est plutôt l'aspect "partition" du nombre 100 qui t'intéresse (le fait de subdiviser un entier en somme d'autres entiers), il n'existe pas à ma connaissance de fonctions prédéfinies dans Matlab. Je te recommande de regarder du côté de la communauté Matlab avec les mots clés : "Partitions of an integer", tu devrais trouver ton bonheur.
Programmation dans MATLAB
Bonjour,
Une tentative :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| clear
n=15;
m=0;p=99;s=0;
while m ~= n || s ~= 100
m=0;p=99;
T=0;
for m=1:n
T(m)=1+fix(p*rand);
p=99-sum(T);
s=sum(T);
if s>99
break
end
end
end
T
s |