Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Listowanie każdej możliwości ciągu znaków, z tablicy w pętli, jak wykonać?
Athlan
post
Post #1





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Mam mały problem. Potrzebuję skrypt, który wypisze wszystkie możliwości ciągu znaków z podanej tablicy znaków o określonej długości, np.

mamy litery i długość ciągu:

$chars = array('a','b','c');
$lenght = 4;

teraz z tych danych powinno kolejno powstawać:

Kod
a
aa
aaa
aaaa
b
bb
bbb
bbbb
c
cc
ccc
cccc
ab
ac
abab
acac
ba
bc
baba
bcbc


itd.

Efekt chyba podobny do brutalnego ataku. Muszę wypisać wszystkie możliwości zanków w ciągu o podanej długości.
Pisałem już wiele funkcji takich jak ta:

  1. <?
  2.  
  3. $chars = array('a','b','c');
  4. $lenght = 5;
  5.  
  6. function explore($j,$m){
  7. global $chars, $lenght;
  8.  
  9. foreach($chars as $char){
  10. $j++;
  11.  
  12. for($i = 0; $i < $m; $i++){
  13.  
  14. if($j == count($chars)){
  15. $m++;
  16. explore($j,$m);
  17. }
  18. else
  19. {
  20. echo $char.'-'.$j.'|';
  21. }
  22. }
  23.  
  24. echo'<br>';
  25.  
  26. }
  27.  
  28. }
  29.  
  30. explore(0,1);
  31.  
  32. ?>

ale kompletnie mi nie wychodzi?
Jak mam to zrobić?


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
hwao
post
Post #2


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Wydaje mi sie ze mozna by to bylo ladnie rekurecja zrobic (ale nie bylo by tych "bez znakowych mozliwosci" czyli proponowal bym tak

  1. <?php
  2.  
  3. /**
  4. * @param array tablica z znaczkami
  5. * @param int ile ma byc w sumie tych znakow
  6. * @param int status, czyli ile juz jest znaczkow
  7. */
  8. function iha( $a, $i, $s=) {
  9. $b = null;
  10. if( $i != $s ) {
  11. foreach( $a As $v ) {
  12.  $b .= $v. iha( $a, $i, ++$s );
  13. } else {
  14.  return $b;
  15. }
  16. }
  17. $chars = array('a','b','c', '');
  18. $lenght = 4;
  19.  
  20. echo iga( $chars, $lenght );
  21.  
  22.  
  23. ?>

Nie daje glowy ze to dziala biggrin.gif to wczesny proptotyp winksmiley.jpg trzeba by popoprawiac go smile.gif
Go to the top of the page
+Quote Post
Athlan
post
Post #3





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


mi on nawet odpalić nie chce... poprawiałem tam co nieco i cały czas to samo:
Cytat
Parse error: parse error in c:\apache\htdocs\a.php on line 13


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Oj, popraw sobie ten kod -- byl pisany na zywo bez sprawdzania (prawdopodobnie)
  1. <?php
  2. function iha( $a, $i, $s=)
  3. {
  4. $b = null;
  5. if( $i != $s )
  6. {
  7. foreach( $a As $v )
  8. {
  9. $b .= $v. iha( $a, $i, ++$s );
  10. }
  11. }// BRAKOWALO KLAMRY
  12. else
  13. {
  14. return $b;
  15. }
  16. }
  17. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
hwao
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Wszytkie mozliwoosci otrzymasz czyms takim
  1. <?php
  2.  
  3. /**
  4. * @param array tablica z znaczkami
  5. * @return array mieszanka wedlo... :)
  6. */
  7.  
  8. function iha( $x ) {
  9. $a = array();
  10.  
  11. foreach( $x As $v ) {
  12. $s1 = $v;
  13. foreach( $x As $v ) {
  14. $s2 = $s1.$v;
  15. foreach( $x As $v ) {
  16. $s3 = $s2.$v;
  17. foreach( $x As $v ) {
  18. $s4 = $s3.$v;
  19. $a[] = $s4;
  20. }
  21. $s3 = $s2;
  22. }
  23. $s2 = $s1;
  24. }
  25.  
  26. }
  27.  return $a;
  28. }
  29.  
  30. $chars = array( 'a','b','c', '' );
  31.  
  32. var_dump( iha( $chars ) );
  33.  
  34.  
  35. ?>


nie bialem czasu zrobic to na rekurecji a bylo by ladniej...
Go to the top of the page
+Quote Post
Athlan
post
Post #6





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Dobra, poskładałem sobie takie coś:

  1. <?php
  2.  
  3. /**
  4. * @param array tablica z znaczkami
  5. * @param int ile ma byc w sumie tych znakow
  6. * @param int status, czyli ile juz jest znaczkow
  7. */
  8. function iga( $a, $i, $s=)
  9. {
  10. $b = null;
  11. if( $i != $s )
  12. {
  13. foreach( $a As $v )
  14. {
  15. $b .= $v. iga( $a, $i, ++$s );
  16. }
  17. }
  18. else
  19. {
  20. return $b;
  21. }
  22. }
  23.  
  24. $chars = array('a','b','c', '');
  25. $lenght = 4;
  26.  
  27. echo iga($chars, $lenght);
  28.  
  29. ?>


I mi errora 500 wywala, co mam zrobić?

P.S. Często tak mam ;p


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
hwao
post
Post #7


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Musisz miec cos zle skonfigurowane w serwerze smile.gif

Nagraj sobie gotowa paczke WAMP (w google wamp +server) i masz paczke z php mysql i apache dzialajaco odrazu.
Go to the top of the page
+Quote Post
Athlan
post
Post #8





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


ale jak funkcje wywale to plik dziala... coś czuje że on sam sobie patrzy czy się nie zapętli i nie wyświetli takiego niebezpiecznego pliku - moje zdanie smile.gif


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
hwao
post
Post #9


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




nie, to musi byc cos zle z serwerem ustawione smile.gif

http://www.codestyle.org/sitemanager/apache/errors-500.shtml
Go to the top of the page
+Quote Post
Athlan
post
Post #10





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


Cytat(hwao @ 2006-04-26 17:37:47)
nie, to musi byc cos zle z serwerem ustawione smile.gif

Tylko dla linków typu obszernego listowania czegokolwiek mam error 550... może mam za słabe php? (4.3.1)


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
hwao
post
Post #11


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




Dziwne, nie powinno tak sie takie cos pojawiac (nawet mimo wersji php, chyba ze byl jakis bug).

Co rozumiesz przez obszerne?

Jak chcesz, to mozesz sie odezwac na prv (gg/jabber/tlen) latwiej bedzie sie dogadac, moze sie uda ustalic co jest nie tak.
Go to the top of the page
+Quote Post
Athlan
post
Post #12





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

Ostrzeżenie: (0%)
-----


W logach mam takiego errora:
Cytat
[notice] child pid nr_pida exit signal segmentation fault (11)


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 20:01