2015-01-30 4 views
2

제 첫 번째 게시물이기 때문에 용서해주십시오. 프로그래밍의 모든 유형에 상당히 익숙합니다. 나는 나의 질문이 분명하기를 바란다. 나는 이것이 내가 최선을 다하려고 노력하고 있다고 설명하는 것처럼 Excel 참조를 사용하고있다.난수, 열 및 행. PHP

풀에 임의의 숫자를 생성하려고합니다. 8 행의 숫자가 있고 각 행에는 10 개의 0-9 점이 있습니다. 각 행에 임의의 숫자가 있고 각 행에 숫자가 반복되지 않도록하고 싶습니다.

예제 그리드 - 폭 8 열 x 길이 10 행.

각 열에 대해이 스크립트를 반복하고 있지만 행이 동일한 숫자를 얻고 있으며 그런 일이 발생하지 않도록하고 싶습니다.

for ($i=1; $i<=10; $i++) { 
      while (1) { 
       $duplicate = 0; 
       $num=rand(0,9);  
       for ($x=1; $x<$i; $x++) { 
        if ($NFC1[$x]==$num) { $duplicate = 1; } 
       } 

       if ($duplicate==0) { 
        $NFC1[$i]=$num; 
        break; 
       } 
      } 
     } 

결과는 알 수 있듯이 임의의 숫자는 각 열에 있지만 각 행에는 없습니다.

"4";"8";"5";"5";"0";"4";"2";"7" 
"5";"9";"4";"3";"9";"9";"9";"0" 
"9";"5";"1";"1";"5";"8";"6";"1" 
"7";"4";"6";"2";"6";"7";"3";"3" 
"2";"6";"8";"4";"7";"2";"7";"5" 
"0";"1";"0";"7";"2";"1";"4";"6" 
"1";"7";"9";"9";"4";"3";"0";"4" 
"3";"0";"3";"0";"3";"5";"5";"9" 
"8";"2";"7";"8";"1";"6";"8";"2" 
"6";"3";"2";"6";"8";"0";"1";"8" 
+0

은이 링크를 참조하시기 바랍니다 : //stackoverflow.com/questions/3274794/php-array-generation-challange – stepozer

답변

0

정사각형이 아닌 배열에 addapted here에서 대답은 할 수있다 다음과 같습니다

$rows = 10; // Number of rows 
$columns = 8; // Number of columns 

$row = range(0, $columns-1); 
$column = range(0, $rows-1); 

shuffle($row); 
shuffle($column); 

// Create an array 
foreach ($row as $x => $value) 
    foreach ($column as $y) 
     $array[$y][$x] = $value++ % max($rows, $columns); 

그리고 당신은 그 결과를보고 싶다면 : HTTP :

foreach($array as $r) { 
    foreach($r as $number) { 
     echo $number.' '; 
    } 
    echo "<br/>"; 
}