![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 190 Pomógł: 2 Dołączył: 30.11.2009 Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Set... Mój post jaki linkujesz tyczy wariacji z powtórzeniami. Nie kombinacji z powtórzeniami. A patrząc co chce autor to ma to być wariacja, ale bez powtórzeń (ważna kolejność, nie może się powtarzać element). Jak najprościej zrobić ją? Algorytm:
1. Weź tablicę liczb i usuń duplikaty ( no chyba, że może być kilka wystąpień tej samej liczby, ale wątpię, bo to spowoduje wystąpienie duplikatów w wyniku! ) 2. W pętli przesuwaj się po wszystkich elementach tablicy 3. Zastosuj (ilość_elementów-2) takich pętli pomniejszonych o element pętli wyższego rzędu. Jak to miałoby wyglądać? tablica = (2,4,7,9) Pętla_1 (2,4,7,9) Bierzesz 2, Pętla_2 (4,7,9) Bierzesz 4, Pętla_3 (7,9) Z tego dostaniesz liczby 2,4,7,9 i 2,4,9,7 Zmienia się Pętla_2, która wskazuje teraz nie na 4, ale 7. Pętla_3 też się zmienia! Zawiera bowiem (4,9) Mamy więc 2,7,4,9 i 2,7,9,4 Znowu zmiana w Petla_2 z 7 na 9 i po raz kolejny Pętla_3 zmiany uwidacznia (4,7) Mamy 2,9,4,7 i 2,9,7,4 Zarówno Pętla 2 i 3 doszły do ostatnich elementów, więc zmiana w Pętla_1, z 2 na 4. Lec tak dalej a sam zauważysz jak to ma działać (IMG:style_emoticons/default/winksmiley.jpg) Podpowiem... znów zagnieżdżone rekurencyjnie foreach (IMG:style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 23:36 |