Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt losujący mecze, Skrypt losuje mecze do poszczególnych kolejek
frok
post
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.07.2009

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


Witam, jestem na etapie pisania skryptu losujacego mecze. Pojawił się problem i nie umiem go rozwiązać.

Jest 6 drużyn. Każda z drużyn rozegra 5 meczów. Łączna ilość meczów wszystkich drużyn wynosi 15. Jaki algorytm zastosować, żeby przypisać każdy mecz do danej kolejki? Jest 5 kolejek. Mecze nie mogą się powtarzać.

(IMG:http://www.sourcemania.pl/Sources/grupy.jpg)

Nie potrzebuję gotowych rozwiązań. Proszę tylko o podpowiedź jak to w prosty sposób obliczyć
Go to the top of the page
+Quote Post
Bags_Bunny
post
Post #2





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


Na szybko, z matematycznego punktu widzenia, wygenerowałby permutacje zbioru drużyn, usunąłbym powtórzenia i cieszył rezultatem (IMG:style_emoticons/default/wink.gif) .
Skrypt do permutacji znajdziesz bez problemu w Googlu, a usunięcie powtórzeń to już błachostka (możesz np. napisać swoją funkcję "hashującą").
Czyli permutacja daje Ci wszystkie możliwe ciągi:
Kod
123456
123465
...
456321
...
456231
...
654321

Odrzucamy identyczne ciągi (w tym wypadku 123456, 123465 oraz 654321 opisują taką samą konfigurację). Natępnie odfiltrowujesz nielegalne konfiguracje (mając 123456 nie możemy mieć 456321) i po sprawie.
To może wyglądać strasznie, ale wcale takie nie jest. Sprawnie zaimplementowane powinno zmieścić się w kilkunastu, góra kilkudziesięciu linijkach, i działać w dobrym czasie (pomijając losowanie permutacji, które jednak też możesz zoptymalizować mając sporo dodatkowych warunków).

Niemniej jednak, zacząłbym od Googla - problem wydaje się dość standardowy, pewnie jest już wiele przemyślanych rozwiązań
Go to the top of the page
+Quote Post
arekk18
post
Post #3





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 4.02.2012

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


Bags_Bunny, tylko że frok już odfiltrował nielegalne konfiguracje i zostały same poprawne (zdjęcie po prawej stronie czerwoną czcionką). Problem tkwi w tym, że nie potrafi wrzucić tych 15. meczów do 5. kolejek tak, żeby się nie powtarzały i żeby w każdej kolejce występowała cyfra od 1 do 6
Go to the top of the page
+Quote Post
Bags_Bunny
post
Post #4





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


Cytat(arekk18 @ 4.02.2012, 17:17:21 ) *
Problem tkwi w tym, że nie potrafi wrzucić tych 15. meczów do 5. kolejek tak, żeby się nie powtarzały i żeby w każdej kolejce występowała cyfra od 1 do 6

Przecież to też już zrobił. To nie był po prostu przykład? Jeśli nie, to nie wiem w czym problem. Typowy algorytm wyszukiwania.
Go to the top of the page
+Quote Post
frok
post
Post #5





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 18.07.2009

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


Znalazłem klasę która robi dokładnie to czego oczekuję. Problem rozwiązany.

http://www.phpclasses.org/package/5563-PHP...ound-robin.html
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:35