Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: jak uzyskać wszystkie możliwe kombinacje tablicy
Forum PHP.pl > Forum > PHP
Mattius
Hej,
mamy tablicę $a która ma elementów N (może być to dowolna ilość). Przykładowo 2:
  1. $a = array('a', 'b');

Każdy element tablicy może mieć wartość obecnie ustawioną lub wartości z tablicy $y:
  1. $y = array('*', '-');

Jak uzyskać wszystkie kombinacje? Czyli w w/w przykładzie:
  1. ab
  2. *b
  3. -b
  4. a*
  5. a-


Konieczne jest zachowanie kolejności elementów z tablicy $a, czyli kombinacje "ba", "b*" nie są prawidłowe (kolejność wyniku nie ma znaczenia). Tablica $a może mieć dowolną ilość elementów. Skrypt nie powinien też polegac na dlugosci wartosci elementow tablicy (bo niekoniecznie musza to byc tylko 1-znakowe wartosci).

Jak to można oprogramować? Proszę o pomoc.
erix
A to nie była przypadkiem wariacja bez powtórzeń?
celbarowicz
nie kumam o co chodzi. jeśli nie potrafisz opisać zagadnienia to wykonaj to zadanie na piechotę i wrzuć jeszcze raz na forum. wszystko idzie oprogramować jeśli wiadomo o co chodzi.---podaj całkowity przykład(rozwiązanie) na trzech lub czterech elementach. POZDRAWIAM.
a może chodzi o wszystkie podzbiory?
Mattius
Cytat(celbarowicz @ 3.06.2010, 00:00:23 ) *
nie kumam o co chodzi. jeśli nie potrafisz opisać zagadnienia to wykonaj to zadanie na piechotę i wrzuć jeszcze raz na forum. wszystko idzie oprogramować jeśli wiadomo o co chodzi.---podaj całkowity przykład(rozwiązanie) na trzech lub czterech elementach. POZDRAWIAM.
a może chodzi o wszystkie podzbiory?


$a z 4 elementami:
  1. $a = array('a','b','c','d');

$y dla uproszczenia tym razem z 1 elementem:
  1. $y = array('*');


oczekiwany wynik:
  1. abcd
  2. abc*
  3. ab**
  4. a***
  5. ****
  6. ab*d
  7. a**d
  8. ***d
  9. a*cd
  10. **cd
  11. *bcd

czyli - w zasadzie łaczenie elementów tablicy $a (1 wynik) + kombinacje z zastępywaniem każdej wartosci tablicy $a przez wartosci z tablicy $y

@erix, nie wiem - wstępnie własnie czytam, ale chyba to nie to - sprawdzę, ale dzięki za jakąś wskazówkę

W zasadzie jak to już w takiej kolejności wypisałem to sam sobie poradziłem - tylko 3 pętle w php :-) Nie taki diabeł straszny :-)

Dzięki celbarowicz smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.