![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Chciałem wygenerowac sobie wszystkie mozliwe polaczenia liter i liczb, aby stworzyly one 3 znakowy string. Wiem, ze wariacje z powtorzeniami 3 elementowe z 35 to bedzie 35^3.
Napisalem wiec takie "cos":
Problem polega na tym, ze skrypt nigdy nie chce dojsc do konca. Najwiecej do tej pory zdarzylo mi sie, ze wygenerowal 16345 rozwiazania, a powinno ich byc 42875. Czemu tak sie dzieje? (dzialam na localhoscie) |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 742 Pomógł: 0 Dołączył: 14.12.2003 Skąd: Gdańsk, Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
jakie błędy wywala?
ide do taty po materiały on ma o tych wariacjach moze cos pomoze;] |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Brak bledów. Jesli chodzi o wzor na wariacje to jest dobry. (Matematyka :: Kombinatoryka). Napisałem, ze skrypt wyswietlil mi maksymalnie. 16345 rozwiazania, a powinno ich byc 42875. Oznacza to, ze uruchamialem skrypt kilka razy, wyniki prezentuja sie nastepujaco:
ok. 5000 ok. 16000 ok. 12000 ok. 9000 ok. 16000 ok. 16000 Nie wiem dlaczego... ale skrypt tak jakby nie chce dzialac do konca. Tak jakby skonczyla mu sie moc na dalsze szukanie. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 106 Pomógł: 1 Dołączył: 2.12.2005 Skąd: Jaworzno Ostrzeżenie: (0%) ![]() ![]() |
Więc po pierwsze, to żeby kod był uniwersalny (nie tylko na 3 litery), to:
a po drugie, to czy funkcja rand() wyświetli Ci wszystkie kombinacje? byćmoże niektóre się powtórzą, a więc niektóre się nie pojawią? (szczerze mówiąc sam nie wiem, a w manualu nic nie wyczytałem) - to może być źródło problemu |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Masz podstawowy błąd logiczny w algorytmie.
Wywołujesz funkcje genLB() 42875 razy. Ale nie pomyślałeś o tym, że losowanie może zwrócić 42875 razy ten sam wynik? Pozatym - 42875 razy wywołujesz potegowanie. Brawo za optymalizację ![]() Spróbuj tak:
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 122 Pomógł: 0 Dołączył: 23.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Racja scanner. Pomyslalem tylko o tym, aby wygenerowanej powtornie liczby nie dodawac do tablicy, nie pomyslalem natomiast zeby nie zwiekszac $i++. Dzieki.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 15.08.2025 - 03:47 |