![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Kod Array ( [0] => 1 - 1 - 1 [1] => 1 - 1 - 2 [2] => 1 - 1 - 3 [3] => 1 - 1 - 4 [4] => 1 - 1 - 5 [5] => 1 - 2 - 1 [6] => 1 - 2 - 2 [7] => 1 - 2 - 3 [8] => 1 - 2 - 4 [9] => 1 - 2 - 5 [10] => 1 - 3 - 1 [11] => 1 - 3 - 2 [12] => 1 - 3 - 3 [13] => 1 - 3 - 4 [14] => 1 - 3 - 5 [15] => 1 - 4 - 1 [16] => 1 - 4 - 2 [17] => 1 - 4 - 3 [18] => 1 - 4 - 4 [19] => 1 - 4 - 5 [20] => 1 - 5 - 1 [21] => 1 - 5 - 2 [22] => 1 - 5 - 3 [23] => 1 - 5 - 4 [24] => 1 - 5 - 5 [25] => 2 - 1 - 1 [26] => 2 - 1 - 2 [27] => 2 - 1 - 3 [28] => 2 - 1 - 4 [29] => 2 - 1 - 5 itd. Wynik to wszystkie możliwe wariancje z powtórzeniami, 3 elementowe. Liczba możliwych wartości działa w porządku ale nie potrafię zrobić uniwersalnej pętli dla dowolnej liczby elementów (teraz 3). Prosi się o rekurencje ale będzie dużo tego więc wole jej uniknąć. Próbuje z for ale nic nie wychodzi. Ten post edytował markonix 20.08.2013, 00:30:47 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 125 Pomógł: 14 Dołączył: 2.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
jak nie chcesz rekurencji to spróbuj tak:
troszkę twój skrypt przerobiłem (IMG:style_emoticons/default/smile.gif) szybki opis: wyliczamy ilość wszystkich możliwych kombinacji następnie za pomocą pętli for zmieniamy ostatnią wartość na następną. Gdy taka wartość jest już za wysoka zmieniamy na nowo na zero lecz wcześniejsza wartość podnosimy itd. Od razu wolę uprzedzić, że elementy tablicy $elements musza mieć klucze ustawione w kolejności od 0. Choć i tak uważam lepsze rozwiązanie przez rekurencję. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Haha, troszkę (IMG:style_emoticons/default/biggrin.gif)
chyba prościej by było eval'em (IMG:style_emoticons/default/biggrin.gif) Nie no rekurencji nie chce bo pamięć się zapcha - kombinacji będzie kilkaset minimum, z tego co wiem w PHP limit to 100-200 odwołań. Edit: przynajmniej na takiej informacje trafiłem bo jak testuje to nic się nie dzieje przy tysiącach rekurencjach.. Ten post edytował markonix 20.08.2013, 12:21:27 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 10:34 |