ďťż
Podstrony
|
telcocafeChciałbym wygenerować wszystkie możliwe ciągi trzyliterowe z zakresu podanych znaków.Przykład: $znaki = Array('a', 'b', 'c'); Taki ciąg wypisuje: abc acb bac bca cab cba ... Liczba znaków może być nieograniczona. Da się coś takiego zrobić? Jeżeli tak to prosze o podpowiedź. Szukałem, sprawdzałem w różnych miejscach, ale nic ciekawego nie znalazłem. <?php $literki = array('a','b','c','d'); function zrobCiag($tablica) { $l = 0; for ($i=0;$i<sizeof($tablica);$i++) { for ($j=0;$j<sizeof($tablica);$j++) { for ($k=0;$k<sizeof($tablica);$k++) { $wyniki[$l] = $tablica[$i].$tablica[$j].$tablica[$k].'< br />'; $l++; } } } return $wyniki; } $wynik = zrobCiag($literki); print_r($wynik); ?> O to chodziło? tia ... a jak bedzie milion pincet elementow to bedziesz mial wiecej petli niz jakikolwiek napisany program ... tu trza rekurencji :) tia ... a jak bedzie milion pincet elementow to bedziesz mial wiecej petli niz jakikolwiek napisany program ... tu trza rekurencji :) Chciałbym wygenerować wszystkie możliwe ciągi trzyliterowe z zakresu podanych znaków. Z tego co zrozumiałem, to znaków może być ho-ho-ho i jeszcze trochę, a ciągi zawsze mają być trzyliterowe. :P Chyba, że źle zrozumiałem, to rekurencja ofc. No to jak to jest źle co napisał bryn to moze to co ja napisalem jest dobre: <?php Function losuj($tablica) { $ilosc = count($tablica); $mozliwosci = $ilosc * ($ilosc-1) * ($ilosc-2); while($mozliwosci>0) { shuffle($tablica); $opcja = $tablica[0].$tablica[1].$tablica[2]; if(!$opcje) $opcje = array(); if(in_array($opcja, $opcje)) $mozliwosci++; if(!in_array($opcja, $opcje)) $opcje[] = $opcja; $mozliwosci--; } return $opcje; } $tablica = array('a', 'b', 'c'); $opcje = losuj($tablica); sort($opcje); foreach($opcje as $opcja) echo $opcja.'<br />'; ?> :P edit: chociaż nie wiem czy autorowi chodziło o to że literki mogą się powtarzać czy też nie... w moim się nie powtarzają w jednej kombinacji :P Na moim komputerze wygenerowało ciągi z całego alfabetu w 9 sekund :] Użytkownik master_dos edytował ten post 21 styczeń 2007, 19:16 master_dos: a gdzie u Ciebie wspomniana rekurencja? |
|||
Sitedesign by AltusUmbrae. |