Řeším rozlosování turnaje v mariáši. Konkrétně mě zajímá
varianta, kdy se turnaje zúčastní 14 hráčů a hraje se na 5 kol.
14 hráčů posadím ke 4 stolům po 4, 4, 3 a 3 hráčích. A samozřejmě
smyslem rozlosovaní je, aby se stejní hráči v dalších kolech spolu
nepotkávali a zároveň, aby maximálně rovnoměrně hrál každý na
trojkovém a čtyřkovém stole. Počet kombinací, jak vylosovat jedno kolo je
podle mě tento:
c(4, 14) * c(4, 10) * c(3, 6) * c(3, 3) = 4204200
A teď, pokud bych chtěl prověřit všechny kombinace možných rozlosování
všech 5 kol, tak by to bylo takto?
No, to je moc zajímavá myšlenka s těmi virtuálními hráči, budu nad ní hloubat. Zatím jsem to moc nepromyslel, ale jak by to podle této metody bylo, pokud by se hráčů sešlo 15? Tam už to řešení možné je, virtuální hráč je jen jeden, stačí ho odebrat z těch 16 a hotovo, ne? Tím je i zaručeno, že každý hráč půjde přesně jednou na trojkový stůl. Čili pro 15 a výš hráčů na 5 kol lze vždy najít řešení, spravedlivého obsazení trojkových a čtyřkových stolů a zároveň eliminovat potkání dvou hráčů opakovaně. Abych se pochlubil, tak se mi podařilo vygenerovat skript ve VBA, který toto potvrzuje, ale právě při těch 14 hráčích se už nedokážu dostat na lepší variantu než, že 2 hráči, co jdou 3× na trojkový stůl, tak se s nikým nepotkají 2×, ostatní hráči, co jsou na trojkový stůl pouze 2× se s jedním hráčem potkají 2× a s jedním, se stejně jako ti, dva další nepotkají vůbec. Líp to asi rozlosovat nepůjde, co? Já právě spekuluji o tom, zda by i mezi těmi, co jdou jen 2× na trojkový stůl nejde alespoň u některých eliminovat to potkání se s tím jedním hráčem znovu. Ale zatím jsem takovou variantu neobjevil, tudíž se domnívám, že neexistuje a není ani reálné prověřit všechny kombinace, jestli přeci jen nějaká o fous lepší kombinace neexistuje. I když zas toto je pro všechny víceméně stejně spravedlivé.
Zajímavá 0 před 2655 dny |
Sledovat
Nahlásit
|
Pokud úlohu rozšíříme na 16 hráčů a 4 stoly po 4. Pak každý člověk za těch 5 kol potká 15 lidí, čili pokud by nikoho nepotkal dvakrát, tak potká všechny.
Což je ale i skoro nejlepší řešení pro tvoji úlohu, neboť víš, že každý bude sedět u trojkového stolu právě dvakrát neboť potká právě 2 virtuální lidi. Kromě dvou lidí, kteří budou jednou sedět pouze ve dvou (protože se právě ty 2 virtuální lidé potkali), ale dále pak vždy po čtyřech.
Najít toto řešení je překvapivě velmi těžká úloha a co vím, tak neexistuje řešení pro obecný případ. A asi už vůbec ne pro různě velké stoly, proto ta aproximace. Jak si zjistil, tak projít všechna řešení by domácí počítač v rozumném čase nezvládl.
Každopádně pro 16lidí existuje konkrétní řešení, zde si o tom
problému můžeš přečíst více: http://bit.ly/2fdwitb
A řešení: (s použitím písmenek)
Ale nevysvětlím ti jak na něj přijít, neboť je to nad moje znalosti, ale mělo by to být z těch odkazů na vědecké články. Nyní si stačí vybrat ty 2 virtuální lidi a vyhodit je. Popřípadě můžeš trochu promíchat to kolo, kde se ty 2 lidi potkaj aby si dostal dva stoly po třech místo jednoho po dvou.
Ano, při 15 hráčích je tohle nejlepší řešení. Pro těch 14 lidí nevím jestli opravdu existuje nejlepší řešení a v tom odkazu a článcích jsem nenašel nic pro různě velké stoly a jak řikám, tak téhle matematice ještě moc nerozumím. Každopádně není to řešení s 2 virt. hráči dostatečně spravedlivé? Opravdu se za jednu hru naučím číst toho druhého hráče natolik aby z toho byla v druhé hře nějaká výhoda?
Upravil/a: Quimby
0 Nominace Nahlásit |
U otázky nebylo diskutováno.
Nový příspěvekannas | 5283 | |
Kepler | 2867 | |
Drap | 2651 | |
quentos | 1803 | |
mosoj | 1594 | |
marci1 | 1357 | |
led | 1356 | |
aliendrone | 1181 | |
zjentek | 1080 | |
Kelt | 1015 |
Astronomie |
Fyzika |
Jazyky |
Matematika |
Sociální vědy |
Technické vědy |
Ostatní věda |