Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wszystkie części wspólne podzbiorów, All common sequences of subarrays
sabat24
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Interesuje mnie, czy jest gotowy algorytm (na wzór Longest common substring), który operowałby bezpośrednio na tablicach z nieposortowanymi elementami? Przykład dużo bardziej rozjaśni, czego poszukuję:
Wejście:
  1. 'bo_1' =>
  2. 0 => 'bo_5'
  3. 1 => 'bo_1'
  4. 'bo_5' =>
  5. 0 => 'bo_1'
  6. 1 => 'bo_5'
  7. 2 => 'bo_17'
  8. 'bo_17' =>
  9. 0 => 'bo_17'
  10. 1 => 'bo_18'
  11. 'bo_19' =>
  12. 0 => 'bo_19'
  13. 1 => 'bo_1'
  14. 2 => 'bo_5'
  15. 3 => 'bo_17'


Wyjście
  1. 0 =>
  2. 0 => 'bo_19'
  3. 1 => 'bo_1'
  4. 2 => 'bo_5'
  5. 3 => 'bo_17'
  6. 1 =>
  7. 0 => 'bo_17'
  8. 1 => 'bo_18'


Próbowałem to wykonać za pomocą array_diff i rekurencji, ale dostawałem nieunikalne wyniki i nie zawsze poprawne.

Ten post edytował sabat24 11.03.2015, 09:52:07
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sabat24
post
Post #2





Grupa: Zarejestrowani
Postów: 175
Pomógł: 26
Dołączył: 13.09.2007
Skąd: Gdańsk

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


Każda "podtablica" jest swoistym podzbiorem, stanowiącym pewną całość. Czyli mamy zbiory (prefix 'bo_' pominę, bo jest nieistotny i tak, a mogą być tam inne wartości):
a = {5, 1}
b = {1, 5, 17}
c = {17, 18}
d = {19, 1, 5, 17}

Zbiór d zawiera w sobie całkowicie zbiór a oraz b, zatem do wyjścia powinien zostać wybrany zbiór d. Zbiór c nie zawiera się w całości nigdzie, więc także powinien być dodany do wyniku. Kolejność w podzbiorach nie ma znaczenia. Tzn. {5, 1} jest równe {1, 5}.

Ten post edytował sabat24 11.03.2015, 10:42:31
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: 8.10.2025 - 03:14