2013-10-23 2 views
1

이것은 바보 같은 질문 일 수 있습니다.배열의 요소의 그래디언트 분포

그라디언트처럼 두 종류의 요소를 배열에 배포해야합니다 (마음에 이미지가 있습니다).

나는 설명하려고 노력할 것이다 (미안하지만, 나는 약간의 용어를 모른다).

내가 X, Y 오브젝트의 배열을 가지고, I는 (사항 Array.length 고정한다)

[X, X, X, Y, X, Y, X 이런 식으로 배열하고 싶습니다 Y, Y, Y] - 중간에 X가 사라지면 y가 표시되기 시작합니다. 배열 [0]은 항상 X이고 배열 [array.lenght-1]은 항상 Y입니다.

어떻게 수행하나요?

질문이 너무 명확하지 않은 경우 다시 죄송합니다.

+0

왜 이렇게해야합니까? 이것이 [X-Y 문제] (http://mywiki.wooledge.org/XyProblem) 일 수 있다고 생각합니다. –

+0

당신은 무엇을 시도 했습니까? – Holger

+0

일부 형식의 디더링 알고리즘을보고 있습니다. http://en.wikipedia.org/wiki/Dither 내가 길을 찾은 것 같아요. 몇 시간 후에 프로토 타입을 업로드 할 것입니다. – Pier

답변

1

이것은 (심지어 약간) 완벽하지 않다, 그러나 그것이 당신에게 영감을 줄 수있는 최소한의 요구를 MEED :

<?php 
$Class1 = 'a'; 
$Class2 = 'b'; 

print_r(gradient($Class1, $Class2, 10)); 

function gradient($class1, $class2, $size){ 
    $result = array(); 

    for($i=0; $i<$size; $i++){ 
     $result[$i] = rand(0, 99) >= $i/$size*100 ? $class1 : $class2; 
    } 

    return $result; 
} 
?> 

샘플 출력을 (높은 크기를 만들 것 귀하의 예에 가깝게) :

Array ([0] => a [1] => a [2] => a [3] => a [4] => b [5] => b [6] => a [7] => b [8] => b [9] => a) 
+0

내 목표를 달성하는 데 올바른 기능이 아니더라도 올바르게 방향을 지정하기 때문에이 사실을 받아 들였습니다. 하워드, 많은 감사합니다! –

+0

@DavideArcinotti 자유롭게 질문을 업데이트하거나 답변을 답변으로 게시하십시오. 함께 여행했는지 궁금합니다. –

관련 문제