Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> wszystkie mozliwe kombinacje, algorytm
deniol13
post
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


witam, poszukuje skryptu/algorytmu ktory z jakiejs tablicy ktora zawiera integery wszystkie kombinacje bez powtorzen
np

$tab[a] = 1;
$tab[b] = 2;
$tab[c] = 3;

wszystkie kombinacje to
123
213
321
312
231
i moze jeszcze pare
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
celbarowicz
post
Post #2





Grupa: Zarejestrowani
Postów: 253
Pomógł: 31
Dołączył: 30.03.2009
Skąd: Szczecin

Ostrzeżenie: (0%)
-----


szkic niezbyt ambitnego sposobu wypisywania wszystkich permutacji zbioru np:{a,b,c,d,e,...}

w tablicy t1 umieszczamy w t1[1] element a , t1[1]=a
pobieramy następny element ->b , i w nowej tablicy t2 wpisujemy w t2[1] łańcuch ba czyli: t2[1] = ba
a w t2[2] łańcuch ab czyli: t2[2] = ab
---------------------------------------------------------------------------------------------------------------------------------
teraz manewry łańcuchem na elemencie t2[1] = ba pobieramy element c w wpisujemy do tablicy t1

t1[1]=cba
t1[2]=bca
t1[3]=bac
podobnie robimy to z t2[2] = ab t1[4]=cab
t1[5]=acb
t1[6]=abc
--------------------------------------------------------------------------------------------------------------------
wykorzystując poprzednie dane z tablicy t1 i pobierając następny element d mamy:
(teraz dane wprowadzamy ponownie do tablicy t2)
t1[1]=cba daje nam t2[1]=dcba
t2[2]=cdba
t2[3]=cbda
t2[4]=cbad
--------------------------------------------------------------------------------------------------------
t1[2]=bca daje nam t2[5]=dbca
t2[6]=bdca
t2[7]=bcda
t2[8]=bcad
--------------------------------------------------------------------------------------------------------
itd dla t1[3] ,...,t1[6]

=================================================================
przy pobraniu następnego elementu ->e dane będą wpisywane do tablicy t1 a wydłużane będą łańcuchy tablicy t2

pozdrawiam.






Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.10.2025 - 15:05