a = RandomInteger[{1, 96}]
b = RandomInteger[{1, 97 - a}]
c = RandomInteger[{1, 98 - a - b}]
d = RandomInteger[{1, 99 - a - b - c}]
e = 100 - a - b - c - d
échantillons:
{34,25,26,3,12,Sum =,100}
{90,5,1,1,3,Sum =,100}
{29,16,21,9,25,Sum =,100}
{4,13,71,10,2,Sum =,100}
Les chiffres ne sont également distribués, bien sûr.
Modifier
Voici une répartition plus homogène:
a = RandomInteger[{1, 20}];
b = RandomInteger[{1, 40 - a}];
c = RandomInteger[{1, 60 - a - b}];
d = RandomInteger[{1, 80 - a - b - c}];
e = 100 - a - b - c - d;
sortie:
{5,33,2,8,52,Sum =,100}
{14,9,50,5,22,Sum =,100}
{3,23,12,34,28,Sum =,100}
{1,16,4,5,74,Sum =,100}
{6,28,6,9,51,Sum =,100}
{11,25,7,1,56,Sum =,100}
{4,34,12,18,32,Sum =,100}
{6,13,25,26,30,Sum =,100}
{8,27,14,5,46,Sum =,100}
{17,13,23,25,22,Sum =,100}
Voici les fréquences pour les numéros:
Modifier
Peut-être un meilleur:
a = Max[#, 1] & /@ Evaluate[RandomInteger[{1, 20}, 5] - 1];
b = 100 - [email protected];
c = Mod[b, 5];
d = (b - c)/ 5;
a = a + d + {c, 0, 0, 0, 0};
Distribution:
Modifier
En Mathematica vous pouvez facilement générer tous les 5-tuples ajouter jusqu'à 100 comme:
IntegerPartitions[100, {5}]
Il y a 38225 bêtes différentes, sans permutations compter
[email protected][100, {5}]
(* -> 38225 *)
La fréquence pour chaque numéro dans ces quintuplés est:
[email protected]@IntegerPartitions[100, {5}]
La courbe est très similaire si l'on prend en compte les permutations:
t = [email protected]@(Permutations[#] & /@ IntegerPartitions[100, {5}]);
[email protected][t, #[[1]] &][[All, 2]]
J'ai posé une question similaire il y a quelque temps et une grande réponse a obtenu: http://stackoverflow.com/questions/2794582/ replace-duplicate-values-in-array-avec-new-randomly-generated-values –
duplication possible de [Non biased retourne une liste de n nombres positifs aléatoires (> = 0) de sorte que leur somme == total_sum] (http: //stackoverflow.com/questions/3959021/non-biased-return-a-list-of-n-random-positive-numbers-0-so-that-their-sum) –