им вдохновлен этой должности:Все возможные комбинации с п цифр (букв, цифр)
PHP algorithm to generate all combinations of a specific size from a single set
им, используя следующий фрагмент кода:
function comb ($n, $elems) {
if ($n > 0) {
$tmp_set = array();
$res = comb($n-1, $elems);
foreach ($res as $ce) {
foreach ($elems as $e) {
array_push($tmp_set, $ce . $e);
}
}
return $tmp_set;
}
else {
return array('');
}
}
$elems = array('A','B','C', 'a', 'b', 'c', 0, 1, 2, 3);
$v = comb(7, $elems);
Этот работает хорошо, но проблема в том, что он создает мне комбинации следующим образом:
(А, В, а) (А, В, С) (А, В, С, 0) (А, В, С, 1, 2)
я хочу, чтобы пропустить все эти комбинации 3 для, я просто хочу, чтобы все комбинации из 7 цифр, например:
(A, B, C, 0, 1, 2, a) (A, B, C, 0, 1, 2, B)
и так далее ...
Как я мог настроить этот код,
Благодарим за помощь!
Здравствуйте, спасибо за вашу помощь, я видел его и получил его работу. Проблема в том, что у моего набора данных есть 64 значения, а у моего n 20, поэтому у меня будет много много много много много много комбинаций .... Проблема в том, что для этого потребуются годы, чтобы вычислить все комбинации, есть ли способ сократить время или что-то, что я могу сделать? – redigaffi
Вы не можете, потому что 64 выберите 20 1.9619726 * 10^16, поэтому генерация этого списка займет много времени, независимо от того, как вы это сделаете. Если есть что-то еще, что вы хотите сделать, это не связано с генерацией всего списка, но вы можете сделать это быстрее. – Neal