내 조건에 맞는 임의의 시퀀스로 배열을 만들고 싶습니다.PHP 무작위 순서 생성기
- 시퀀스는 1-8의 8 가지 숫자로 구성되어야합니다.
- 처음 4 개 또는 마지막 4 개 숫자에는 2 개 이상의 연속 된 숫자가 없어야합니다. 예 : 1,2,3은 정렬이 잘못되어 (3,4,5) 연속되기 때문에 5,3,4도 좋지 않습니다.
이것은 좋은 예입니다 : 1,4,5,7, | 8,6,3,2
이것은 좋은 예는 아닙니다 : 1,3,2,6, | 그것은 생성을 위해 일하고
$sequences = array();
while(count($sequences) < 100){
//Random 8 numbers sequence from 1-8
$sequence = array();
while(count($sequence) < 8){
$rand = rand(1,8);
if(!in_array($rand, $sequence)){
array_push($sequence, $rand);
}
}
//Insert if numbers are not successive.
//Struggling here
if(?????){
array_push($sequences, $sequence);
}
}
print_r($sequences);
:이 만든
처음 4 자리 숫자 (1,2,3)을 분류하면 5,7,8,4 때문에 1,3,2 연속 숫자 그것의 일부이지만 연속적인 숫자를 포함하지 않는 연속열을 삽입하는 방법을 생각할 수는 없습니다. 이견있는 사람?
그럼 ... 1-8의 목록을 스크램블링 하시겠습니까? – JohnP
@JohnP a가 편집되었습니다. 처음 4 자리 또는 마지막 4 자리의 숫자는 순서에 관계없이 연속되어서는 안됩니다. 따라서 1,3,2,6,5,7,8,4가 1,2,3이 첫 4 자리에서 연속되기 때문에 작동하지 않으므로 혼잡하지 않습니다. – Wistar
1,3,2,6,5,7,8,4의 "좋지 않은 예"에서 - 1,3,2가 어떻게 연속적인지는 알 수 없습니다. 연속적으로 무엇을 의미합니까? –