2010-06-20 4 views
-2

어떻게 특수 무작위 배열을 만드십시오. 나는 array(1=>35,2=>25,3=>40)입니다. 배열이 특별한 요소를 보여줄 수있는 방법. 전의. 배열에서 100 요소를 얻고 싶다면. 그것은 될 것입니다무작위 배열

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

요소는 무작위이어야하지만 대부분의 요소는 + -10이어야합니다. 나는이 코드에 의해 그것의 가능한 메이크업을 알고

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

배열 array(35 elements with value 1, 25 elements with value 2, 40 elements with value 3) 모양과 병합하고 난 내 코드를 얻을 것이다 array_rand 사용. 그러나 나는이 코드를 원하지 않는다. 그것은 100 항목을 만들 것입니다. 이 코드를 최적화해야합니다. 있을 수있다. 도움. :-)

+0

참고 값 1 요소의 개수가 안으로 '가되도록 100 개 요소 배열을 만들 [25,45]'요소의 개수 값 2는'b [15,35] '이고 값 3의 값의 수는'c [30,50]'입니까? 문제는 하위로 지정되어 있으므로,'a','b' 및'c' 배포판이 어떤 것인지 알려줘야합니다. 그것이 없으면 예를 들어 알 수 없습니다. 가능성이 높으면'a = 25'를'c = 50'으로 얻습니다. – Artefacto

답변

0

가중치 무작위 배열을 찾으십니까?

체크 예 :

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

+0

예 매우 고마워요. :-) – Valdas

+0

@Valdas 이것은 당신이 물어 본 것과 같지 않습니다 ... 당신은 두 가지 제약 때문에 범주 형 분포를 요구하지 않았습니다 - 변화량은 단지 +10이고 모든 합은 100입니다. – Artefacto