数日前、ビジネス上の必要性から順列と組み合わせを計算するコードを書きました
/**
* 解くべき数学的問題: C(a,1) * C(b, 1) * ... * C(n, 1) の組み合わせを計算します。ここで、C(n, 1) は n 個の要素の数を表します任意の要素を選択してください
*
* 実際に解く問題の例: ある学年には m 個のクラスがあり、各クラスの人数は異なります。各クラスから 1 人を選択してグループを形成する必要があります。 ,
* 学校の活動で学年を表すために、考えられるすべての組み合わせを教えてください
*/
/* ## ##### ############################ 計算開始############### ##### ############## */
/**
* 配置して組み合わせる必要がある配列
*
* 配列の説明: この配列は 2 次元配列であり、1 次元のインデックスはクラス番号を表し、2 次元のインデックスは生徒番号を表します。*/
$CombinList = array(1 => array("Student10", "Student11" ),
2 = & gt; 配列 ("Student20", "Student21"),
3 = & GT;
4 = & GT; " 2 "," Student43"));
$CombineCount = 1; の値を計算します。
foreach($CombinList as // 組み合わせに分割された後の $StudentList 内の要素の垂直方向の繰り返しの最大数
$RepeatTime = $RepeatTime / count($StudentList);
$StartPosition = 1;
foreach($StudentList as $Student)
$SpaceCount;
; ";
print_r($ Result);