Szukaj

Rss Posts

Rss Comments

Login

 

Jak wyświetlić k-elementowe kombinacje bez powtórzeń z n-elementowego zbioru?

Sep 16

Chciałbyś wyświetlić na ekranie wszystkie k-elementowe kombinacje z n-elementowego zbioru danych? Wystarczy, że zaimplementujesz w swoim skrypcie następującą funkcję.

<?
function kombinacje($zbior, $k) {
  global $wynik;
  $dlugosc = count($zbior);
    if($dlugosc > $k)
      foreach($zbior as $klucz => $wart)
        kombinacje(array_diff_key($zbior, array($klucz => $wart)), $k);
    else
      $wynik[] = $zbior;
  return $wynik;
}
?>

Użycie powyższej funkcji jest bardzo proste - wystarczy podać dwa argumenty:
zbior - n-elementowa tablica zawierająca zbiór, z którego będziemy wyznaczać kombinacje
k - rozmiar podzbiorów z kombinacjami.

Poniższy przykład obrazuje wypisanie wszystkich 2-elementowych kombinacji ze zbioru 3-elementowego {1,2,3}.

<?
print_r(kombinacje(array(1,2,3), 2));
?>

Podziel się z innymi: Te ikonki pozwalają łatwo podzielić się tym artykułem z innymi za pośrednictwem serwisów społecznościowych
  • Wykop
  • Gwar
  • Technorati
  • Digg
  • del.icio.us
  • NewsVine
1 gwiazdka2 gwiazdki3 gwiazdki4 gwiazdki5 gwiazdek (1 votes, average: 5 out of 5)
Loading ... Loading ...


Post a comment