Moze li neko da me uputi gde da trazim teoriju o programerskoj kombinatorici. Negde sam cuo i naziv dela matematike koji se izucava na elektrotehnickom fakultetu i koji se podrobno bavi ovim delom (tipa: sah, rubikova kocka i sl. stvari koje mogu da se svedu na princip grananja kombinacija i traversing kroz iste). Meni treba da napravim nesto tipa "svajcarca" sistema za parovanje (sahisti sigurno znaju o cemu je rec), ali ne bas standardnog, vec dosta modifikovanog. Nema mnogo veze sa php-om, ali nemam gde da stavim, a php inace radim, pa eto...
Algoritam za "svajcarac"
Zaključano
Zakačeno
A zasto nije programiranje?
Pojasni o cemu se tacno radi i sta ti treba i ako spada, prebacicemo u art of programming ...
Da si odmah napisao šta ti treba, neko bi, recimo, mogao da te uputi na Bergerove tablice, tj. na Bergerov sistem i na algebarski ili aritmetički sistem parovanja.
Naravno, uvek možeš da radiš i na teži način...
Naravno, uvek možeš da radiš i na teži način...
Evo pojasnjenja sta je svajcarac:
Igra se sah recimo, 10 igraca. U prvom kolu se sastaju 1. i 2. , 3. i 4. , ... , 9. i 10. i to je idealan svajcarac. Svako po plasmanu igra sa plasiranim odmah pored. Medjutim, pravilo je da ne smeju 2 igraca da igraju 2 puta, pa tako u nekom narednom kolu ako su 1. i 2. vec igrali, igrace 1. i 3. , a 2. i 4. Kombinacija ima mnogo i trazi se sto idealnija, sto je manji razmak po plasmanu izmedju igraca, to je svajcarac bolje sklopljen.
Ok, evo sad problema prevedenog u matematicki model (za samo jedno kolo):
Napravi se matrica 10x10 gde su dijagonalni elementi vrednosti -1 (jer niko ne moze da igra sa samim sobom). Kada igraju 2. protiv 4. recimo clan a24 i a42 se promene u 2, a kolone 2 i 4 i vrste 2 i 4 se promene u vrednost 1, sto oznacava da je igrac zauzet za to kolo. To je prvi par, sada se ide dalje, na drugi i tako dalje u dubinu.
Dakle, za pocetak treba mi sledece: korisnik unese dimenziju matrice (broj igraca), a meni program (skripta, sta god) vrati skup svih (unikatnih) resenja gde su stvoreni parovi, tako da niko nije ukljucen 2 puta i nije odredjen da igra sam sa sobom.
Nije mi potrebno da mi neko resi sve ovo, uglavnom trazim da me uputi na sisteme i metode koje se koriste pri ovakvim proracunima. Interesantno je da ovo deluje mnogo lakse nego sto zapravo jeste.
Igra se sah recimo, 10 igraca. U prvom kolu se sastaju 1. i 2. , 3. i 4. , ... , 9. i 10. i to je idealan svajcarac. Svako po plasmanu igra sa plasiranim odmah pored. Medjutim, pravilo je da ne smeju 2 igraca da igraju 2 puta, pa tako u nekom narednom kolu ako su 1. i 2. vec igrali, igrace 1. i 3. , a 2. i 4. Kombinacija ima mnogo i trazi se sto idealnija, sto je manji razmak po plasmanu izmedju igraca, to je svajcarac bolje sklopljen.
Ok, evo sad problema prevedenog u matematicki model (za samo jedno kolo):
Napravi se matrica 10x10 gde su dijagonalni elementi vrednosti -1 (jer niko ne moze da igra sa samim sobom). Kada igraju 2. protiv 4. recimo clan a24 i a42 se promene u 2, a kolone 2 i 4 i vrste 2 i 4 se promene u vrednost 1, sto oznacava da je igrac zauzet za to kolo. To je prvi par, sada se ide dalje, na drugi i tako dalje u dubinu.
Dakle, za pocetak treba mi sledece: korisnik unese dimenziju matrice (broj igraca), a meni program (skripta, sta god) vrati skup svih (unikatnih) resenja gde su stvoreni parovi, tako da niko nije ukljucen 2 puta i nije odredjen da igra sam sa sobom.
Nije mi potrebno da mi neko resi sve ovo, uglavnom trazim da me uputi na sisteme i metode koje se koriste pri ovakvim proracunima. Interesantno je da ovo deluje mnogo lakse nego sto zapravo jeste.
Citat:
djoka_l: Da si odmah napisao šta ti treba, neko bi, recimo, mogao da te uputi na Bergerove tablice, tj. na Bergerov sistem i na algebarski ili aritmetički sistem parovanja.
Naravno, uvek možeš da radiš i na teži način...
Naravno, uvek možeš da radiš i na teži način...
Bergerov sistem je nesto drugo, razlikuje se dosta od ovog sto meni treba.
Evo ti FIDE pravila http://www.fide.com/fide/handbook.html?id=83&view=article
Problem sa tvojim pitanjem je što si počeo od pitanja oko generisanja svih kombinacija, a nisi pitao ono što te zanima, a to je ako dobro shvatam: Kako napraviti program za organizaciju šakovskog (ili nekog drugog turnira) po Švajcarskom metodu.
Kada proučiš pravila i kad proučiš linkove koje dobiješ kada u Google ukucaš Swiss tournament generator ili swiss tournament algorithms, onda se javi sa novim pitanjima...
Problem sa tvojim pitanjem je što si počeo od pitanja oko generisanja svih kombinacija, a nisi pitao ono što te zanima, a to je ako dobro shvatam: Kako napraviti program za organizaciju šakovskog (ili nekog drugog turnira) po Švajcarskom metodu.
Kada proučiš pravila i kad proučiš linkove koje dobiješ kada u Google ukucaš Swiss tournament generator ili swiss tournament algorithms, onda se javi sa novim pitanjima...
Nista ovde nije napisano sto se kosi sa onim sto sam ja napisao. Da si pazljivo citao mozda bi i video: . Niti je ovo za sah, niti ima veze sa fide pravilima, ali sam taj model uzeo jer je besmisleno objasnjavati na 4 strane ovde sta ja pravim. Niko to nece da cita. Meni trebaju sve moguce kombinacije, da ne objasnjavam zasto.
Algoritme, kao algoritme nigde nisam nasao. A koristio bi mi. Ono sto se nalazi je ili gotov softver, koji je meni potpuno beskoristan, ili kod, koji je u jezicima koje ne mogu da porocitam.
Citat:
Meni treba da napravim nesto tipa "svajcarca" sistema za parovanje (sahisti sigurno znaju o cemu je rec), ali ne bas standardnog, vec dosta modifikovanog
Algoritme, kao algoritme nigde nisam nasao. A koristio bi mi. Ono sto se nalazi je ili gotov softver, koji je meni potpuno beskoristan, ili kod, koji je u jezicima koje ne mogu da porocitam.