Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Rekurencja
nikestylex7
post
Post #1





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


Witam próbuje i mi nie wychodzi. Wiem że chodzi o wywołanie funkcji przez samą siebie lecz nie wiem nawet czy nie idę w ślepy kąt bo nie wiem czy jest ona w stanie mi pomóc.
oto przykład w którym chciałbym kontrolować ilość kombinacji a mianowicie zmniejszać pętle for na tyle ile chciałbym sobie wybrać.

  1. $liczby = array( '1','X','2' );
  2. $kupon = 0; //specjalnie zaczynam od 0, bo pierwszy cykl od razu nam zamieni zmieną $kupon na 1
  3. $licznik = 0; //to nam będzie się ciagle zmieniać
  4. $wzorzec = 'Kupon ';
  5. $nazwa1= 'Legia Warszawa - Pogoń Szczecin :';
  6. $nazwa2= 'Manchester United - Arsenal :';
  7. $nazwa3= 'Barcelona - Manchester City :';
  8. $nazwa4= 'AC Milan - Juventus :';
  9. $nazwa5= 'Legia Warszawa - Pogoń Szczecin :';
  10. $nazwa6= 'Pogoń Szczecin - Manchester United :';
  11. $nazwa7= 'Borussia Dortmund - Arsenal :';
  12. $nazwa8= 'Barcelona - Pogoń Szczecin :';
  13. $nazwa9= 'Barcelona - Legia Warszawa :';
  14. $nazwa10= 'Arsenal - Barcelona :';
  15. $kombinacje = array();
  16. $ilosc_na_kuponie=1; //ilość spotkań na kuponie
  17. $cliczby = count( $liczby );
  18. for( $j = 0; $j < $cliczby; $j++ ) {
  19. for( $i = 0; $i < $cliczby; $i++ ) {
  20. for( $h = 0; $h < $cliczby; $h++ ) { // CHODZI TUTAJ O TE PĘTLE MOŻE REKURENCJA JEST W STANIE POMÓC
  21. for( $g = 0; $g < $cliczby; $g++ ) {
  22. for( $f = 0; $f < $cliczby; $f++ ) {
  23. for( $e = 0; $e < $cliczby; $e++ ) {
  24. for( $d = 0; $d < $cliczby; $d++ ) {
  25. for( $c = 0; $c < $cliczby; $c++ ) {
  26. for( $b = 0; $b < $cliczby; $b++ ) {
  27. for( $a = 0; $a < $cliczby; $a++ ) {
  28. if(0 === $licznik%$ilosc_na_kuponie) {
  29. ++$kupon; // to nam stworzy klucze w tablicy, w stylu "kupon_1", "kupon_2" itd
  30. }
  31. ++$licznik;
  32. $kombinacje[$wzorzec.$kupon] = '<br />'.$nazwa1.$liczby[$a].'<br />'.$nazwa2.$liczby[$b].'<br />'.$nazwa3.$liczby[$c].'<br />'.$nazwa4.$liczby[$d].'<br />'.$nazwa5.$liczby[$e].'<br />'.$nazwa6.$liczby[$f].'<br />'.$nazwa7.$liczby[$g].'<br />'.$nazwa8.$liczby[$h].'<br />'.$nazwa9.$liczby[$i].'<br />'.$nazwa10.$liczby[$j]; // a to nam utworzy właściwe tablice z kombinacjami kuponów
  33. }
  34. }
  35. }
  36. }
  37. }
  38. }
  39. }
  40. }
  41. }
  42. }
  43.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
nikestylex7
post
Post #2





Grupa: Zarejestrowani
Postów: 386
Pomógł: 7
Dołączył: 22.04.2010
Skąd: Ziemia

Ostrzeżenie: (20%)
X----


Tak tylko no mówię nie ma błędów chciałbym je widzieć były tylko do tej zmiennej a potem jak zrobiłem to nic ;/

Aktualnie pod tą kombinacje
  1. function makeThis($iterations, $cliczby, $kupon, $kombinacje)
  2.  
  3. {
  4. $liczby = array( '1','X','2' );
  5. $kupon = 0; //specjalnie zaczynam od 0, bo pierwszy cykl od razu nam zamieni zmieną $kupon na 1
  6. $licznik = 0; //to nam będzie się ciagle zmieniać
  7. $wzorzec = 'Kupon ';
  8. $nazwa1= 'Manchester United - Arsenal :';
  9. $nazwa2= 'Manchester United - Arsenal :';
  10. $nazwa3= 'Barcelona - Manchester City :';
  11. $nazwa4= 'AC Milan - Juventus :';
  12. $nazwa5= 'Legia Warszawa - Pogoń Szczecin :';
  13. $nazwa6= 'Pogoń Szczecin - Manchester United :';
  14. $nazwa7= 'Borussia Dortmund - Arsenal :';
  15. $nazwa8= 'Barcelona - Pogoń Szczecin :';
  16. $nazwa9= 'Barcelona - Legia Warszawa :';
  17. $nazwa10= 'Arsenal - Barcelona :';
  18. $kombinacje = array();
  19. $ilosc_na_kuponie=1; //ilość spotkań na kuponie
  20. $cliczby = count( $liczby );
  21. for( $i = 0; $i < $cliczby; $i++ ) {
  22. // jeśli skończyły nam się zagnieżdżenia, to wykonujemy kod przypisania wartości do zmiennej
  23. $iterations=0;
  24. if($iterations <= 0)
  25. {
  26. if(0 === $licznik%$ilosc_na_kuponie) {
  27. ++$kupon; // to nam stworzy klucze w tablicy, w stylu "kupon_1", "kupon_2" itd
  28. }
  29. ++$licznik;
  30. $kombinacje[$wzorzec.$kupon] = '<br />'.$nazwa1.$liczby[$i]; // a to nam utworzy właściwe tablice z kombinacjami kuponów
  31. echo '<pre>';
  32. print_r( array_slice($kombinacje,0,100) );
  33. echo '</pre>';
  34. }
  35. // W innym wypadku wywołujemy samą siebie, zmniejszamy iterację i przesyłamy te wszystkie parametry jeszcze raz
  36. else
  37. {
  38. makeThis(--$iterations, $cliczby, $kupon, $kombinacje);
  39.  
  40. }
  41.  
  42. }
  43.  
  44. }
  45. makeThis($iterations, $cliczby, $kupon, $kombinacje);


Są następujące błędy: :
Notice: Undefined variable: iterations in /home/k/public_html/k.php on line 171

Notice: Undefined variable: cliczby in /home/k/public_html/k.php on line 171

Notice: Undefined variable: kupon in /home/k/public_html/k.php on line 171

Poza tym to skrypt wyświetla kombinacje lecz tak
Array
(
[Kupon 1] =>
Manchester United - Arsenal :1
)
Array
(
[Kupon 1] =>
Manchester United - Arsenal :1
[Kupon 2] =>
Manchester United - Arsenal :X
)
Array
(
[Kupon 1] =>
Manchester United - Arsenal :1
[Kupon 2] =>
Manchester United - Arsenal :X
[Kupon 3] =>
Manchester United - Arsenal :2
)

A powinien tak jak jest ostatnia tablica czyli 3 kupony i to w dodatku jest tylko do jednej petli jednego zdarzenia a gdzie jeszcze do tego 9

?

Ten post edytował nikestylex7 7.01.2013, 04:42:32
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 02:08