Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Chciałbym wyświetlić wszystkie k-elementy zbioru php

suromarek 28 Gru 2012 19:46 900 1
  • #1 28 Gru 2012 19:46
    suromarek
    Poziom 10  

    Code:

    <?php

    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;
    }
     
     
    print_r(kombinacje(1,2,3,4,5,6,7,8,9,10),2);
    ?>


    Dodano po 11 [minuty]:

    Cytat:

    <?php

    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;
    }


    print_r(kombinacje(array(10,20,55), 2));
    ?>

    chciałbym aby mi wyświetliło
    10-20
    10-55
    20-55

    Dodano po 1 [godziny] 22 [minuty]:

    Code:

    <?php

    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;
    }
     
     
    print_r(kombinacje(array(10,20,55,33,5,77,11,34,53,65,32,12,11), 6));
    ?>

    Podczas wyświetlania fukcja wyżuca kod
    Code:

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in C:\Program Files\EasyPHP-5.4.0beta2\www\test2.php on line 8

    0 1
  • #2 29 Gru 2012 19:21
    L_u_k_e
    Poziom 8  

    suromarek napisał:
    Podczas wyświetlania fukcja wyżuca kod
    Kod:

    Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 36 bytes) in C:\Program Files\EasyPHP-5.4.0beta2\www\test2.php on line 8

    Ten błąd oznacza, że twój skrypt przekroczył dopuszczalny limit pamięci. Jeśli robisz to u siebie na localu, to możesz go po prostu zwiększyć w pliku php.ini (memory_limit). Poza tym do skryptu nie zaglądałem, ale najpewniej jest nieoptymalnie napisany.

    0