2010-06-20 5 views
-2

comment faire un tableau aléatoire spécial. J'ai array(1=>35,2=>25,3=>40). comment faire une possibilité que ce tableau affiche des éléments spéciaux. Ex. Si je veux obtenir 100 éléments de tableau. il seraTableau aléatoire spécial

35/100 +-10 - must bee 1 element, 
25/100 +-10 = must be 2 element, 
40/100 +-10 - must be 3 element. 

Les éléments doivent être aléatoires, mais la plupart des éléments + -10. Je sais que rendre possible par ce code:

$a = array_fill(1, 35, 1); 
$b = array_fill(36, 60, 2); 
$c = array_fill(61, 100, 3); 
tableau

ressemble array(35 elements with value 1, 25 elements with value 2, 40 elements with value 3) et en utilisant la fusion et array_rand je vais obtenir mon code. Mais je ne veux pas de ce code. ce sera créer 100 articles. besoin d'optimisation ce code. c'est possible. Aidez-moi. :-)

+0

Vous voulez créer un tableau avec 100 éléments de sorte que le nombre d'éléments à valeur 1 est 'a dans [25,45]', le nombre d'éléments avec la valeur 2 est 'b dans [15,35]' et le nombre de valeurs avec la valeur 3 est 'c dans [30,50]'? Votre problème est sous-spécifié, vous devez indiquer quelles sont les distributions 'a',' b' et 'c'. Sans cela, nous ne pouvons pas dire par ex. Si c'est aussi probable, vous obtenez 'a = 25' comme' c = 50'. – Artefacto

Répondre

0

Êtes-vous à la recherche d'une matrice aléatoire pondérée?

Vérifiez cet exemple:

http://20bits.com/articles/random-weighted-elements-in-php/

+0

Oui, merci beaucoup. :-) – Valdas

+0

@Valdas Ce n'est pas pareil que vous avez demandé ... Vous n'avez certainement pas demandé une distribution catégorique à cause de vos deux contraintes - que la variation est seulement de + - 10 et que la somme de toutes est de 100. – Artefacto