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.
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.
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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 n = 100; entierAleatoire = randi([1 100],1,n);
Bonjour,
Une tentative :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager