1

スケジュールのすべての可能な組み合わせを見つける方法が必要です。長さによって異なる特定の日付のコースがあります。所定の週数があります。すべてのコースを含めて、重複することなく、すべての可能な組み合わせのソリューションを見つける必要があります。

$courses = array ("A", "B", "C", "D");
$duration = array (2, 3, 1, 2); // duration of $courses (in weeks)
$start_dates = array (
  $courses[0] => array (1, 3, 5),
  $courses[1] => array (1, 2, 5, 6),
  $courses[2] => array (3, 4, 5, 9),
  $courses[3] => array (1, 4, 8));

可能なすべての組み合わせを取得したいと思います。たとえば、次のようになります。

Week | Course 
1    | A
2    | A
3    | C
4    | D
5    | D
6    | B
7    | B
8    | B
9    | -
10   | -

2 番目の組み合わせは、たとえば次のようになります。

Week | Course 
1    | A
2    | A
3    | -
4    | C
5    | B
6    | B
7    | B
8    | D
9    | D
10   | -

好ましい出力は、次のように、week => course の配列になります。

$combinations = array (
 0 => array (
  1 => $courses[0], 
  2 => $courses[0], 
  3 => $courses[2],
  4 => $courses[3],
  ...
 ),
 1 => array (
  1 => $courses[0], 
  2 => $courses[0], 
  4 => $courses[2],
  5 => $courses[1],
  6 => $courses[1],
  7 => $courses[1],
  ...
 )
);

私は本当にこの問題で立ち往生しています。どうもありがとうございました。

4

0 に答える 0