Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> kombinacje bez powtórzeń
bryzas
post 22.09.2007, 14:10:00
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 questionmark.gif
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
Go to the top of the page
+Quote Post
yasiek
post 22.09.2007, 22:11:46
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++;
}
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:47