![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 14 Pomógł: 2 Dołączył: 22.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Poradzcie jak wypisać n elementowe kombinacje bez powtórzeń z k elementowego zbioru ![]() np: zbiór : {0,1,2,3} kombinacje : 01 02 03 12 13 23 Wskrobałem coś takiego (przykład bo w zalezności od wcześniejszych wyliczeń, w talicy może być różna ilość elementów tu dla 4 elementów): CODE $pary[] = 0; $pary[] = 1; $pary[] = 2; $pary[] = 3; for ($i = 0; $i < count($pary)-1; $i++) { for ($j = 0; $j < count($pary); $j++) { if ($pary[$i] <> $pary[$j]) { echo $i." : ".$j." OR ".$j." : ".$i; } } } ale wypisuje : 0:1 OR 1:0 0:2 OR 2:0 0:3 OR 3:0 1:0 OR 0:1 1:2 OR 2:1 1:3 OR 3:1 2:0 OR 0:2 2:1 OR 1:2 2:3 OR 3:2 a chcę aby wypisywało : 0:1 OR 1:0 0:2 OR 2:0 0:3 OR 3:0 1:2 OR 2:1 1:3 OR 3:1 2:3 OR 3:2 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 4.06.2006 Skąd: Strzeszyce/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wprowadź sobie jeszcze jedną zmienną, na przykład $k, która będzie zliczała które to powtórzenie; zmienna $j będzie rozpoczynała pętlę z wartością $k. Wyglądać to będzie mniej więcej tak:
Kod $pary[] = 0;
$pary[] = 1; $pary[] = 2; $pary[] = 3; $k = 0; for ($i = 0; $i < count($pary)-1; $i++) { for ($j = $k; $j < count($pary); $j++) { if ($pary[$i] <> $pary[$j]) { echo $i." : ".$j." OR ".$j." : ".$i.'<br />'; } } $k++; } |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 06:47 |